すべてのデータベースでストアドプロシージャを実行し、すべての結果をテーブルに保存する

user3753769

サーバー内のすべてのデータベースを循環し、そのサーバーでストアドプロシージャを実行して、結果テーブルに保存するクエリを作成しようとしています。

これは私がこれまでに持っているものです:

CREATE table results (Severity INT, PurchaseOrderNumber INT,
                      PurchaseOrderLineNumber SMALLINT, ShipmentNumber SMALLINT,
                      ErrorCode int, ErrorText VARCHAR(256), DateCreated datetime)

EXECUTE sp_msForEachDB '
    IF "?" LIKE "VIS%"
        BEGIN
            USE "?"
            INSERT INTO results EXECUTE IC_PURCHASEORDER
        END
    '
SELECT * FROM results

DROP TABLE results

このコードから達成したいと思っているのは、サーバー内のすべてのデータベースに対してIC_PURCHASEORDERストアドプロシージャを実行し、その結果を作成された結果テーブルに記録することです。その後、それらの結果を上司に電子メールで送信し、テーブルを削除することができますが、それは別の日の仕事です。IFステートメントに構文エラーがあり、次のエラーが発生することはわかっています。

Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '{insert database name here}'.

私が達成しようとしていることについての洞察を得ることができるでしょうか?ありがとう!

デイブ・カラム

次のようにコードを更新します。トリックを実行する必要があります。

CREATE table results (Severity INT, PurchaseOrderNumber INT,
                          PurchaseOrderLineNumber SMALLINT, ShipmentNumber SMALLINT,
                          ErrorCode int, ErrorText VARCHAR(256), DateCreated datetime)

    exec sp_msForEachDB 'use [?];
                    if ''?'' like ''vis%''
                    begin
                        if object_id(''IC_PURCHASEORDER'') is not null
                        begin
                             INSERT INTO results EXECUTE IC_PURCHASEORDER
                        end
                        else
                        begin
                             print ''missing proc in ?''
                        end
                    end'

    SELECT * FROM results

    DROP TABLE results

簡単なテスト...これを実行すると、すべてのデータベースが '%a%'のようになります。

exec sp_msForEachDB 'use [?];
                    if ''?'' like ''%a%''
                    begin
                        select ''? is like a''
                    end
                    else
                    begin
                        select ''? is not like a''
                    end'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

文字列変数を使用したテーブルのすべての行に対するストアドプロシージャの実行

分類Dev

選択したすべてのデータ行に対してストアドプロシージャを実行する方法はありますか?

分類Dev

SQLストアドプロシージャテーブル内のすべての行を削除する

分類Dev

SSMSを使用してすべてのストアドプロシージャで実行を許可する

分類Dev

テーブル内のすべてのNULL値をストアドプロシージャで埋める方法

分類Dev

カーソルを使用せずにSELECTのすべての行に対してストアドプロシージャを実行する

分類Dev

WHERE句を無視してすべての結果を返すMySQLストアドプロシージャ

分類Dev

Postgresqlストアドプロシージャはテーブルのすべての列を返します

分類Dev

複数の結果セットを使用してストアドプロシージャを実行する

分類Dev

列の各値をテーブルからストアドプロシージャに渡し、結果をSQL-Serverのテーブルに保存する方法

分類Dev

テーブルの使用法について、すべてのデータベースのプロシージャ/関数を検索します

分類Dev

ストアドプロシージャを追加して実行するためにSQLServer ManagementStudioで必要なデータベースロール

分類Dev

ストアドプロシージャを使用して複数のテーブルに保存する

分類Dev

ストアドプロシージャ:すべての行の出力を使用して、複数のテーブルから行を削除します

分類Dev

すべてのストアドプロシージャに実行を許可します

分類Dev

データテーブルで選択したアイテムを配列として使用する方法は、laravelを使用して行ごとにリストされているすべてのデータをデータベースに保存します

分類Dev

カスタム タイプをテーブルとして使用してストアド プロシージャを実行するための Plsql

分類Dev

テーブルの結果をパラメータとしてストアドプロシージャに挿入します

分類Dev

FOR XML PATH( '')を使用してストアドプロシージャの1つの行に圧縮するselectステートメントの結果を返す

分類Dev

デルフィのストアドプロシージャを使用してデータベースに画像を保存する

分類Dev

結果を格納するための一時テーブルを作成するストアドプロシージャからの結果に依存するデータをクエリするSSRSデータセットを構築しますか?

分類Dev

Linqを使用してストアドプロシージャの結果をフィルタリングする

分類Dev

documentdbは、コレクションのすべてのパーティションでストアドプロシージャを実行しますか?

分類Dev

ストアドプロシージャのテーブルからすべてのIDを返す

分類Dev

ストアドプロシージャによって返されたすべてのテーブルをロードします

分類Dev

同じストアドプロシージャを使用してデータを選択し、データを別のテーブルに挿入する方法

分類Dev

ストアドプロシージャの結果をテーブルに挿入し、列を追加します

分類Dev

SQLストアドプロシージャを使用して垂直テーブルの値を結合する

分類Dev

ストアドプロシージャの結果と追加の列をテーブルに挿入します

Related 関連記事

  1. 1

    文字列変数を使用したテーブルのすべての行に対するストアドプロシージャの実行

  2. 2

    選択したすべてのデータ行に対してストアドプロシージャを実行する方法はありますか?

  3. 3

    SQLストアドプロシージャテーブル内のすべての行を削除する

  4. 4

    SSMSを使用してすべてのストアドプロシージャで実行を許可する

  5. 5

    テーブル内のすべてのNULL値をストアドプロシージャで埋める方法

  6. 6

    カーソルを使用せずにSELECTのすべての行に対してストアドプロシージャを実行する

  7. 7

    WHERE句を無視してすべての結果を返すMySQLストアドプロシージャ

  8. 8

    Postgresqlストアドプロシージャはテーブルのすべての列を返します

  9. 9

    複数の結果セットを使用してストアドプロシージャを実行する

  10. 10

    列の各値をテーブルからストアドプロシージャに渡し、結果をSQL-Serverのテーブルに保存する方法

  11. 11

    テーブルの使用法について、すべてのデータベースのプロシージャ/関数を検索します

  12. 12

    ストアドプロシージャを追加して実行するためにSQLServer ManagementStudioで必要なデータベースロール

  13. 13

    ストアドプロシージャを使用して複数のテーブルに保存する

  14. 14

    ストアドプロシージャ:すべての行の出力を使用して、複数のテーブルから行を削除します

  15. 15

    すべてのストアドプロシージャに実行を許可します

  16. 16

    データテーブルで選択したアイテムを配列として使用する方法は、laravelを使用して行ごとにリストされているすべてのデータをデータベースに保存します

  17. 17

    カスタム タイプをテーブルとして使用してストアド プロシージャを実行するための Plsql

  18. 18

    テーブルの結果をパラメータとしてストアドプロシージャに挿入します

  19. 19

    FOR XML PATH( '')を使用してストアドプロシージャの1つの行に圧縮するselectステートメントの結果を返す

  20. 20

    デルフィのストアドプロシージャを使用してデータベースに画像を保存する

  21. 21

    結果を格納するための一時テーブルを作成するストアドプロシージャからの結果に依存するデータをクエリするSSRSデータセットを構築しますか?

  22. 22

    Linqを使用してストアドプロシージャの結果をフィルタリングする

  23. 23

    documentdbは、コレクションのすべてのパーティションでストアドプロシージャを実行しますか?

  24. 24

    ストアドプロシージャのテーブルからすべてのIDを返す

  25. 25

    ストアドプロシージャによって返されたすべてのテーブルをロードします

  26. 26

    同じストアドプロシージャを使用してデータを選択し、データを別のテーブルに挿入する方法

  27. 27

    ストアドプロシージャの結果をテーブルに挿入し、列を追加します

  28. 28

    SQLストアドプロシージャを使用して垂直テーブルの値を結合する

  29. 29

    ストアドプロシージャの結果と追加の列をテーブルに挿入します

ホットタグ

アーカイブ