我使用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'
感谢!!!
答案 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'
然后您的批次不会发生碰撞。