予期せず変更されたテーブルの値があります。問題の列は次のCreatedDate
とおりです。これはアイテムの作成時に設定されますが、ストアド プロシージャによって変更されています。
SELECT
テーブルからこの列を参照するすべてのプロシージャ名を取得するステートメントを作成できますか?
予期せず変更されたテーブルの値があります。問題の列は次のCreatedDate
とおりです。これはアイテムの作成時に設定されますが、ストアド プロシージャによって変更されています。
SELECT
テーブルからこの列を参照するすべてのプロシージャ名を取得するステートメントを作成できますか?
1 つのオプションは、スクリプト ファイルを作成することです。
データベースを右クリック-> タスク -> スクリプトの生成
次に、すべてのストアド プロシージャを選択し、すべての sps を含むスクリプトを生成できます。したがって、そこから参照を見つけることができます。
または
-- Search in All Objects
SELECT OBJECT_NAME(OBJECT_ID),
definition
FROM sys.sql_modules
WHERE definition LIKE '%' + 'CreatedDate' + '%'
GO
-- Search in Stored Procedure Only
SELECT DISTINCT OBJECT_NAME(OBJECT_ID),
object_definition(OBJECT_ID)
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%' + 'CreatedDate' + '%'
GO
特定の列のみを使用してストアド プロシージャを取得する場合は、次のクエリを使用できます。
SELECT DISTINCT Name
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%CreatedDate%';
テーブルの特定の列を使用してストアド プロシージャを取得する場合は、以下のクエリを使用できます。
SELECT DISTINCT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%tbl_name%'
AND OBJECT_DEFINITION(OBJECT_ID) LIKE '%CreatedDate%';
これを試して..
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%CreatedDate%'
GO
または、すべての手順のスクリプトを生成して、そこから検索することもできます。
-- すべてのオブジェクトを検索
SELECT OBJECT_NAME(OBJECT_ID),
definition
FROM sys.sql_modules
WHERE definition LIKE '%' + 'ColumnName' + '%'
GO
-- ストアド プロシージャのみを検索
SELECT DISTINCT OBJECT_NAME(OBJECT_ID)
FROM sys.Procedures
WHERE object_definition(OBJECT_ID) LIKE '%' + 'ColumnName' + '%'
GO
以下のクエリを使用して、値を識別できます。ただし、暗号化されたストアド プロシージャからの結果は得られないことに注意してください。
SELECT DISTINCT OBJECT_NAME(comments.id) OBJECT_NAME
,objects.type_desc
FROM syscomments comments
,sys.objects objects
WHERE comments.id = objects.object_id
AND TEXT LIKE '%CreatedDate%'
ORDER BY 1