重命名表

时间:2014-02-17 11:23:14

标签: sql-server tsql

我使用sp_rename切换表名,下面是我的查询

exec sp_rename 'dbo.People_Daily' , 'TEMP'
exec sp_rename 'dbo.People_Future', 'People_Daily'
exec sp_rename 'TEMP',   'dbo.People_Future'

我的问题是,如果我使用不同的表名并行执行相同的查询,因为我在两个查询中使用TEMP字,是否有可能人们将使用TEM中的TEMP,我该怎么办?要避免这种情况,是否有任何自动生成的单词替换TEMP?

exec sp_rename 'dbo.Address_Daily' , 'TEMP'
exec sp_rename 'dbo.Addresse_Future', 'Address_Daily'
exec sp_rename 'TEMP',   'dbo.Address_Future'

感谢!!!

1 个答案:

答案 0 :(得分:3)

如果您的批次并行运行,使用TEMP可能会发生冲突。但您可以使用TEMP作为现有表名的后缀:

exec sp_rename 'dbo.People_Daily' , 'dbo.People_Daily_TEMP'
exec sp_rename 'dbo.People_Future', 'People_Daily'
exec sp_rename 'dbo.People_Daily_TEMP',   'dbo.People_Future'

exec sp_rename 'dbo.Address_Daily' , 'dbo.Address_Daily_TEMP'
exec sp_rename 'dbo.Addresse_Future', 'Address_Daily'
exec sp_rename 'dbo.Address_Daily_TEMP',   'dbo.Address_Future'

然后您的批次不会发生碰撞。