一次修改SQL Server 中特定view結構

摘要:批次修改view結構

把所有有用到 linked server中NT1這個資料庫的view,取代為使用本機的資料庫。
(亦即view的schema中,拿掉所有"NT1."字串)

-------------------------------------------------------------------------------
DECLARE @view_name as varchar(50), @new_def as varchar(max);

DECLARE db_cursor CURSOR FOR  
select	table_name,
		view_def =  Replace(view_definition,'NT1.','')
from	INFORMATION_SCHEMA.VIEWS
where	view_definition like '%NT1.%'

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @view_name,  @new_def 

WHILE @@FETCH_STATUS = 0   
BEGIN   
		EXEC ('drop view ' + @view_name)
		EXEC (@new_def)
		FETCH NEXT FROM db_cursor INTO @view_name,  @new_def    
END

CLOSE db_cursor   
DEALLOCATE db_cursor
-------------------------------------------------------------------------------