(軽量データベース用)すべてのデータベースでキーワード検索、あなたはノートの意識、直接コピーするには、次のスクリプトを使用することができます。
#Retrieveテーブルをドロップ
NOCOUNT ONに設定
@UserDBのVARCHAR(100)を宣言
@strのVARCHAR(100)を宣言
取得する@ STR = 'VGC' --your文字列を設定
テーブル#Retrieve(Retrieve_InfoのVARCHAR(200))を作成
DBNAMEカーソルを宣言
するための
中に名前はないsys.databasesから名前を選択する
(N'master 'N'model'、N'msdb 'N'tempdb'、N'distribution 'N'DWDiagnostics'、N'DWConfiguration'、N'DWQueue」 、N'resource 'N'ReportServer'、N'ReportServerTempDB ')
--Note:あなたは(Aなど)は、データベースに検索キーワードをクリアすることができれば、あなたはWHEREで回線名にすることはできません
- (N'master「N'model」、N'msdb「N'tempdb」 、N'distribution 'N'DWDiagnostics'、N'DWConfiguration ')'、N'DWQueue ' --N'resource'、N'ReportServer'、N'ReportServerTempDB A(ここで名に'')
オープンDBNAME;
@UserDBに次のDBNAMEからフェッチ。
@@ FETCH_STATUS = 0ながら
開始
宣言@column_sqlのVARCHAR(1000)
に設定@ column_sql =
'DECLARE columnCursor CURSOR FOR SELECT ''['」+ TABLE_CATALOG + '']。[ '' + TABLE_SCHEMA + '']。[ '' +
TABLE_NAME + ''] '' tableNameのような、 '[ '' + TABLE_CATALOG + ''] [' + TABLE_SCHEMA + ''] [ '+
TABLE_NAME + ''] [' + COLUMN_NAME + '' ] '' COLUMNNAMEがFROM [として'+は@UserDB + '] .INFORMATION_SCHEMA.columns
(+ QUOTENAME(@UserDB、 '[]')+'。SYS.TABLESどこでa.table_NAMEをから名前を選択します)'。 TABLE_NAME <> '+' ''
@tablenameのVARCHARを宣言する(100)
オープンcolumnCursor
@テーブル名、@ Column_nameのに次columnCursorからフェッチします。
@@ FETCH_STATUS = 0ながら
開始
宣言@retrieveのVARCHAR(1000)
の@ retrieve2のVARCHAR(1000)宣言が
@countは、INT宣言
取得@設定= '@rowcount int型を宣言します。
選択'+ @ Column_nameの+'から'+ @テーブル名+'ここで、変換(VARCHAR(200)、 '+ @ Column_nameの+') '+ QUOTENAME(' % '+ @ STR +' %」、 '')のような
--print( @retrieve)
#Retrieve幹部(@retrieve)に挿入
#Retrieveから(1)@カウント=カウント数を選択
> @count場合は0
を開始
セットする@ retrieve2 = + @テーブル名+ 'SELECT * FROM ''ここ変換(VARCHAR(200)、' + QUOTENAME( '% '+ @ STR + '%'、 '' ''')のような+ Column_nameの@ +)'
--print (@ retrieve2)
のexec(@ retrieve2)
#Retrieveから削除
終わら
他
続ける
@ tablenameを、@ Column_nameのに次のcolumnCursorからフェッチ。
終了
近くにcolumnCursor
DEALLOCATE columnCursorが
@UserDBにDBNAMEから次のフェッチ。
終了
近くDBNAME
DEALLOCATE dbnameは
NOCOUNTオフに設定