0
我們有一些數據庫有很多的視圖,函數和程序。 我們會更新其中一些。所以我寫了這個腳本。 我的問題是,這是一種常見的方式,是正確的方式?mssql批量更新程序和函數
任何建議將不勝感激。
-- update procedures and functions
USE mydb
GO
DECLARE @ticker nvarchar(255)
DECLARE @definition nvarchar(max)
DECLARE @newdefinition nvarchar(max)
DECLARE crsVorgang SCROLL CURSOR FOR
SELECT ROUTINE_NAME,ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_CATALOG = 'mydb' and ROUTINE_DEFINITION like '%something%'
ORDER BY ROUTINE_NAME
OPEN crsVorgang
FETCH FIRST FROM crsVorgang INTO @ticker, @definition
WHILE (@@FETCH_STATUS <> -1)
BEGIN
set @newdefinition = REPLACE(@definition,'sometext', 'newtext')
--print @newdefinition
update INFORMATION_SCHEMA.ROUTINES
set ROUTINE_DEFINITION = @newdefinition
where ROUTINE_NAME = @ticker
FETCH NEXT FROM crsVorgang INTO @ticker, @definition
END
CLOSE crsVorgang
DEALLOCATE crsVorgang
GO
作爲第一個響應,我在一個測試系統上嘗試了它,並得到以下消息:系統目錄的臨時更新是不允許的。 – MattOpen 2014-12-04 10:55:39
你想要完成什麼?從上面的腳本中不太清楚。 – Andreas 2014-12-04 12:02:14