· 8 years ago · Mar 14, 2018, 02:40 PM
1sp_rename IpToCountry IpToCountryOld
2go
3sp_rename IpToCountryNew IpToCountry
4go
5
6CREATE VIEW IpToCountry
7AS
8SELECT * FROM IpToCountry20090303
9
10ALTER VIEW IpToCountry
11AS
12SELECT * FROM IpToCountry20090310
13
14DECLARE @dummylock bit
15BEGIN TRANSACTION
16BEGIN TRY
17 -- necessary to obtain exclusive lock on the table prior to swapping
18 SELECT @dummylock = 1 WHERE EXISTS (SELECT 1 FROM A WITH (TABLOCKX))
19 -- may or may not be necessary in your case
20 SELECT @dummylock = 1 WHERE EXISTS (SELECT 1 FROM B WITH (TABLOCKX))
21 exec sp_rename 'A', 'TEMP'
22 exec sp_rename 'B', 'A'
23 exec sp_rename 'TEMP', 'B'
24 COMMIT TRANSACTION
25END TRY
26BEGIN CATCH
27 -- other error handling here if needed
28 ROLLBACK TRANSACTION
29END CATCH