如何從我的 SQL Server 資料庫中的所有存盤程序中找到特定值?
更具體地說,我想知道插入到指定表的指定列中的值。
例如:
- 一個資料庫有3個存盤程序;
dbo.sp_1,dbo.sp_2,dbo.sp_3 - 該資料庫也有一個
[Log]表,該表有一個[number]列
dbo.sp_1
INSERT INTO [dbo].[Log] ([number])
VALUES (1);
dbo.sp_2
INSERT INTO [dbo].[Log] ([number])
VALUES (2);
dbo.sp_3
INSERT INTO [dbo].[Log] ([number])
VALUES (4);
所以,我期望的查詢結果如下:

uj5u.com熱心網友回復:
我找到了一個用于類似任務的片段,但是,我不必決議值。如果您真的必須決議 sql,這可能會讓您接近。抱歉,剩下的決議交給你
DECLARE @NonEscapeTextToFindLike NVARCHAR(MAX) = 'INSERTINTO\[dbo\].\[LOG\](\[number\])VALUES('
DECLARE @NonEscapeTextToFind NVARCHAR(MAX) = 'INSERTINTO[dbo].[LOG]([number])VALUES('
;WITH Procs AS
(
SELECT
StoredProcedure = name,
StoredProcedureText = OBJECT_DEFINITION(object_id),
NoBlankText = REPLACE(REPLACE(REPLACE(REPLACE(OBJECT_DEFINITION(object_id),' ',''),CHAR(9),''),CHAR(10),''),CHAR(13),'')
FROM
sys.procedures
)
SELECT
*,
StartOfPossibleInt = CHARINDEX(@NonEscapeTextToFind, Procs.NoBlankText) LEN(@NonEscapeTextToFind)
FROM
Procs
WHERE
Procs.NoBlankText LIKE '%' @NonEscapeTextToFindLike '%' ESCAPE '\'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/486996.html
上一篇:SQL:將兩個相似的查詢合并為一個查詢,從而回傳一個包含兩列的表
下一篇:如何使用.NETCore中的EntityFrameworkCore在日期列中插入和更新SQLServerDateTime
