當前位置:首頁 » 服務存儲 » DM存儲過程調試
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

DM存儲過程調試

發布時間: 2023-08-10 23:04:15

㈠ 如何快速查找使用了某個欄位的所有存儲過程

當一個系統中使用了很多的表,並且存在大量的存儲過程,當資料庫中的某個表刪除了某個欄位,那麼相應的存儲過程也需要改動,但是我們不知道哪些存儲過程使用了該欄位,那我們該怎麼辦?我們可以從之前的文檔一個一個查找使用了該欄位的存儲過程,但是這樣效率很多,而且還容易出錯,我們可以使用下面的方法來查找所有使用了某個欄位的存儲過程。如下的函數:


[sql] view plainprint?

01.GO

02.SELECT obj.Name 存儲過程名, sc.TEXT 存儲過程內容

03.FROM syscomments sc

04.INNER JOIN sysobjects obj ON sc.Id = obj.ID

05.WHERE sc.TEXT LIKE '%' + '欄位名' + '%'

06.AND TYPE = 'P'

07.GO

GO

SELECT obj.Name 存儲過程名, sc.TEXT 存儲過程內容

FROM syscomments sc

INNER JOIN sysobjects obj ON sc.Id = obj.ID

WHERE sc.TEXT LIKE '%' + '欄位名' + '%'

AND TYPE = 'P'

GO


下面舉一個例子,比如查找資料庫中所有使用了AdId這個欄位的所有存儲過程。



[sql] view plainprint?

01.USE KyCms

02.GO

03.SELECT obj.Name 存儲過程名, sc.TEXT 存儲過程內容

04.FROM syscomments sc

05.INNER JOIN sysobjects obj ON sc.Id = obj.ID

06.WHERE sc.TEXT LIKE '%' + 'AdID' + '%'

07.AND TYPE = 'P'

08.GO

USE KyCms

GO

SELECT obj.Name 存儲過程名, sc.TEXT 存儲過程內容

FROM syscomments sc

INNER JOIN sysobjects obj ON sc.Id = obj.ID

WHERE sc.TEXT LIKE '%' + 'AdID' + '%'

AND TYPE = 'P'

GO

㈡ 存儲過程禁止空參數

默認情況下,參數可為空。如果傳遞 NULL 參數值並且該參數語句中使用,而該語句中引用的列又不允許使用 NULL,則 SQL Server 會產生一條錯誤信息。為了防止向不允許使用 NULL 的列傳遞 NULL 參數值,應向過程中添加編程邏輯或為該列使用默認值(使用 的 DEFAULT 關鍵字)。