-2
Microsoft SQL Server Management Studioを使用しています。私は、特定の名前を持つビューまたはテーブルの場所を探したい:vw_found
、これは多くのデータベースを含むサーバーでこれ。複数のデータベースで特定の名前のビュー、テーブルを検索
あなたが私を助けてくれることを願っています。私は、このためのSQL検索を使用
Microsoft SQL Server Management Studioを使用しています。私は、特定の名前を持つビューまたはテーブルの場所を探したい:vw_found
、これは多くのデータベースを含むサーバーでこれ。複数のデータベースで特定の名前のビュー、テーブルを検索
あなたが私を助けてくれることを願っています。私は、このためのSQL検索を使用
sp_MSforeachdb
EXECUTE master.sys.sp_MSforeachdb 'USE [?]; SELECT DB_NAME(), * FROM sys.objects WHERE Name = ''vw_found'''
BEGIN
DECLARE @CurrentDatabaseId INT = 0
DECLARE @MaxDatabaseId INT = (SELECT
MAX(database_id)
FROM sys.databases d)
DECLARE @CheckTableName VARCHAR(100) = '<TableName>'
DECLARE @CheckSchemaName VARCHAR(100) = '<SchemaName>'
WHILE @MaxDatabaseId >= @CurrentDatabaseId
BEGIN
IF EXISTS (SELECT
*
FROM sys.databases d
WHERE d.database_id = @CurrentDatabaseId)
BEGIN
DECLARE @CurrentDBName VARCHAR(100);
DECLARE @Sql NVARCHAR(MAX);
DECLARE @RowCount INT;
SELECT
@CurrentDBName = d.name
FROM sys.databases d
WHERE d.database_id = @CurrentDatabaseId
SET @Sql = 'SELECT @RowCnt = COUNT(*) FROM ' + @CurrentDBName + '.INFORMATION_SCHEMA.TABLES t WHERE t.TABLE_SCHEMA = ''' + @CheckSchemaName + '''' + ' AND t.TABLE_NAME = ''' + @CheckTableName + ''''
EXEC sp_executesql @Sql, N'@RowCnt INT OUTPUT', @RowCnt= @RowCount OUTPUT
IF @RowCount > 0
BEGIN
PRINT 'Table : ' + @CheckTableName + ' Exists in Database :' + @CurrentDBName
END
END
SET @CurrentDatabaseId = @CurrentDatabaseId + 1
END END
。 (https://www.red-gate.com/products/sql-development/sql-search/index) – pinegulf
https://www.google.com/search?q=how+to+find+a+sql+サーバー+テーブル+ or +ビュー+ by + name + in + all +データベース&oq = how + to + find + a + sql + server + table + or + view + by + name + in + all + databases&gs_l = psy- 3 ... 5810.7945.0.8184.17.11.0.0.0.0.476.1676.0j1j1j1j2.5.0 .... 0 ... 1.1.64.psy-ab..12.3.1035 ... 33i160k1j33i21k1.0.uqW3Dgw71Xc –