2010-10-04 255 views
0

我們已經改變了我們在應用程序中使用的一些基本函數,並且試圖找出對於我來說,找到並替換現有函數的最佳方法是什麼?輸入/輸出不會改變,只是架構和一些內部邏輯。查找和替換函數的腳本

是否有一種很好的方法來查找使用函數的對象(視圖,過程等),然後用新的對象替換它?

我在想我可以使用sys.syscomments找到對象,然後做一個替換對象的文本?

任何建議將不勝感激。

感謝,

小號

回答

0

要查找引用:

SELECT OBJECT_NAME(m.object_id), 
     m.* 
    FROM SYS.SQL_MODULES m 
WHERE m.definition like N'%my_function_name%' 

SYSCOMMENTSINFORMATION_SCHEMA.routines有NVARCHAR(4000)列。所以如果在位置3998使用「my_function_name」,它將不會被找到。 SYSCOMMENTS確實有多行,但是截斷了ROUTINES

一旦你知道那裏的引用,你可以更新他們...

0

或腳本都出到一個.sql文件,以確定相關對象,做了更換,如果你想。

只需刪除依賴對象並使用更新的腳本創建它們即可。