我們已經改變了我們在應用程序中使用的一些基本函數,並且試圖找出對於我來說,找到並替換現有函數的最佳方法是什麼?輸入/輸出不會改變,只是架構和一些內部邏輯。查找和替換函數的腳本
是否有一種很好的方法來查找使用函數的對象(視圖,過程等),然後用新的對象替換它?
我在想我可以使用sys.syscomments找到對象,然後做一個替換對象的文本?
任何建議將不勝感激。
感謝,
小號
我們已經改變了我們在應用程序中使用的一些基本函數,並且試圖找出對於我來說,找到並替換現有函數的最佳方法是什麼?輸入/輸出不會改變,只是架構和一些內部邏輯。查找和替換函數的腳本
是否有一種很好的方法來查找使用函數的對象(視圖,過程等),然後用新的對象替換它?
我在想我可以使用sys.syscomments找到對象,然後做一個替換對象的文本?
任何建議將不勝感激。
感謝,
小號
要查找引用:
SELECT OBJECT_NAME(m.object_id),
m.*
FROM SYS.SQL_MODULES m
WHERE m.definition like N'%my_function_name%'
SYSCOMMENTS
和INFORMATION_SCHEMA.routines
有NVARCHAR(4000)列。所以如果在位置3998使用「my_function_name」,它將不會被找到。 SYSCOMMENTS
確實有多行,但是截斷了ROUTINES
。
一旦你知道那裏的引用,你可以更新他們...
或腳本都出到一個.sql文件,以確定相關對象,做了更換,如果你想。
只需刪除依賴對象並使用更新的腳本創建它們即可。