すべてのデータベースでキーワード検索

(軽量データベース用)すべてのデータベースでキーワード検索、あなたはノートの意識、直接コピーするには、次のスクリプトを使用することができます。

#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オフに設定    

おすすめ

転載: www.cnblogs.com/LC0507/p/11456003.html