SQL Server中是否可以重命名另一个数据库中的表?在当前数据库中并将数据迁移到TEMP表中的另一个数据库,然后在该另一个数据库中重命名TEMP表时。我不想使用“ USE [database]”,因为数据库名称可能会在其他服务器上更改。
我在这里先向您的帮助表示感谢!
SQL Server中是否可以重命名另一个数据库中的表?在当前数据库中并将数据迁移到TEMP表中的另一个数据库,然后在该另一个数据库中重命名TEMP表时。我不想使用“ USE [database]”,因为数据库名称可能会在其他服务器上更改。
我在这里先向您的帮助表示感谢!
Answers:
使用动态SQL
USE MyDB1
GO
DECLARE @db_name NVARCHAR(20) = 'myDB2'
DECLARE @sql NVARCHAR(1000)
SET @sql = N'EXEC '+ quotename(@db_name)+ '..sp_rename ''[MyTable]'', ''[YourTable]'';';
PRINT @sql;
EXEC SP_EXECUTESQL @sql;
或通过在EXEC中指定数据库:
USE MyDB1
GO
EXEC MyDB2..sp_rename 'MyTable', 'YourTable'
如http://www.sqlservercentral.com/Forums/Topic931229-1292-1.aspx中所述
MyDB2..sp_rename
到目前为止最简单!