[OK]を、ただこれを実行すると、あなたは
USE [master];
GO
IF OBJECT_ID('tempdb..#columns') IS NOT NULL
DROP TABLE #columns;
GO
CREATE TABLE #columns
(databaseName nvarchar(MAX),
columnid int,
columnName nvarchar(MAX),
objectid int,
objectName nvarchar(MAX));
DECLARE @databaseName sysname;
DECLARE @columnName nvarchar(MAX) = 'ColumnName';
DECLARE cur CURSOR LOCAL FORWARD_ONLY STATIC FOR
SELECT [name]
FROM [sys].[databases]
WHERE [state] = 0
AND [name] NOT IN ('tempdb', 'master', 'msdb', 'model');
OPEN cur;
FETCH NEXT FROM cur
INTO @databaseName;
WHILE (@@FETCH_STATUS != -1)
BEGIN;
IF (@@FETCH_STATUS != -2)
BEGIN;
DECLARE @statement nvarchar(MAX);
SET @statement =N'Use '+ @databaseName +
N';
if EXISTS (SELECT name FROM sys.[columns] WHERE name = ''' + @columnName + ''')
BEGIN;
INSERT [#columns] ([databaseName], [columnid], [columnName], [objectid], [objectName])
SELECT ''' + @databaseName + N''',
c.[column_id],
c.[name],
o.[object_id],
o.[name]
FROM sys.[columns] c
INNER JOIN sys.[objects] o
ON [o].[object_id] = [c].[object_id]
WHERE c.[name] = ''' + @columnName + ''';
END;';
EXEC [sys].[sp_executesql] @stmt = @statement;
END;
FETCH NEXT FROM cur
INTO @databaseName;
END;
CLOSE cur;
DEALLOCATE cur;
SELECT * FROM [#columns];
基本的にはできませんのでごColumnNameには、変数を設定してください。外部依存関係は作成されません。おそらく –
開始点:https://stackoverflow.com/q/12051216/125981 –