sql >> データベース >  >> RDS >> Sqlserver

リンクサーバーのすべてのデータベースをSQLServerに一覧表示する(T-SQLの例)

    SQL Serverでは、sp_catalogsを使用できます リンクサーバー内のデータベースの完全なリストを返すシステムストアドプロシージャ。

    厳密に言えば、このストアドプロシージャは、指定されたリンクサーバー内のカタログのリストを返します。これは、SQLServerのデータベースに相当します。

    構文

    構文は次のようになります:

    sp_catalogs [ @server_name = ] 'linked_svr'
    

    @server_name 引数は、データベースのリストが必要なリンクサーバーの名前です。

    これは、Homerと呼ばれるリンクサーバーからデータベースのリストを返す例です。

    EXEC sp_catalogs @server_name = 'Homer';
    

    次のように実行することもできます:

    EXEC sp_catalogs 'Homer';
    

    結果:

    +----------------------+---------------+
    | CATALOG_NAME         | DESCRIPTION   |
    |----------------------+---------------|
    | BandTest             | NULL          |
    | CompareTypes         | NULL          |
    | EMS                  | NULL          |
    | ExamineDateTime2     | NULL          |
    | FK_Test              | NULL          |
    | master               | NULL          |
    | model                | NULL          |
    | msdb                 | NULL          |
    | Music                | NULL          |
    | PK_Test              | NULL          |
    | tempdb               | NULL          |
    | Test                 | NULL          |
    | Test2                | NULL          |
    | WideWorldImportersDW | NULL          |
    +----------------------+---------------+
    

    この場合、リンクサーバーには14個のデータベースがあります。

    ストアドプロシージャは、カタログ/データベース名とその説明(存在する場合)を返します。この場合、どのデータベースについても説明はありません。


    1. SQL Serverで「time」を「datetimeoffset」に変換する(T-SQLの例)

    2. C#からSQL Server 2008のストアドプロシージャにXMLを渡す方法は?

    3. ユーザーがVBAの入力ボックスで[キャンセル]をクリックしたかどうかを確認する方法

    4. Postgresでタイムスタンプを5分に切り捨てる最速の方法は何ですか?