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

SQL Serverでリンクサーバーから主キーを返す(T-SQLの例)

    SQL Serverでは、sp_primarykeysを使用できます 指定されたリンクサーバーから主キー列を返すシステムストアドプロシージャ。指定されたリモートテーブルに対して、キー列ごとに1行を返します。

    このストアドプロシージャを実行する最も簡単な方法は、リンクサーバーの名前を渡すことです。これを行うと、指定されたリンクサーバー上のデフォルトデータベースからすべての主キーが返されます。

    別のデータベースや特定のテーブルスキーマを指定するオプションもあります。

    構文

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

    sp_primarykeys [ @table_server = ] 'table_server'   
         [ , [ @table_name = ] 'table_name' ]   
         [ , [ @table_schema = ] 'table_schema' ]   
         [ , [ @table_catalog = ] 'table_catalog' ]
    

    @table_server 引数は唯一の必須の引数です。これは、主キー情報が必要なリンクサーバーの名前です。

    他の引数はオプションです。

    例1-デフォルトデータベースのすべての主キーを返す

    次の例では、Homerというリンクサーバー上のデフォルトデータベースからすべての主キーを返します。

    EXEC sp_primarykeys @table_server = 'Homer';
    

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

    EXEC sp_primarykeys 'Homer';
    

    結果:

    +-------------+---------------+--------------+---------------+-----------+-----------+
    | TABLE_CAT   | TABLE_SCHEM   | TABLE_NAME   | COLUMN_NAME   | KEY_SEQ   | PK_NAME   |
    |-------------+---------------+--------------+---------------+-----------+-----------|
    | Music       | dbo           | Albums       | AlbumId       | 1         | NULL      |
    | Music       | dbo           | Artists      | ArtistId      | 1         | NULL      |
    | Music       | dbo           | Country      | CountryId     | 1         | NULL      |
    | Music       | dbo           | Genres       | GenreId       | 1         | NULL      |
    +-------------+---------------+--------------+---------------+-----------+-----------+
    

    この場合、4つの主キー列があります(これらはCOLUMN_NAMEの下にリストされています )。 PK_NAMEに気付くでしょう 列はNULLです 。この列は主キー識別子用です。 Microsoftは、データソースに適用できない場合、これはNULLを返すと述べています。

    KEY_SEQ columnは、複数列の主キーの列のシーケンス番号です。この場合、複数列の主キーがなかったため、値は1です。 主キーごとに。次の例では、複数列の主キーを使用した結果が返されます。

    例2–別のデータベースを指定する

    次の例では、WideWorldImportersDW データベースを使用する必要があります。

    EXEC sp_primarykeys 
      @table_server = 'Homer',   
      @table_catalog = 'WideWorldImportersDW';
    

    結果:

    +----------------------+---------------+-------------------------+------------------------------+-----------+-----------+
    | TABLE_CAT            | TABLE_SCHEM   | TABLE_NAME              | COLUMN_NAME                  | KEY_SEQ   | PK_NAME   |
    |----------------------+---------------+-------------------------+------------------------------+-----------+-----------|
    | WideWorldImportersDW | Dimension     | City                    | City Key                     | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Customer                | Customer Key                 | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Date                    | Date                         | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Employee                | Employee Key                 | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Payment Method          | Payment Method Key           | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Stock Item              | Stock Item Key               | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Supplier                | Supplier Key                 | 1         | NULL      |
    | WideWorldImportersDW | Dimension     | Transaction Type        | Transaction Type Key         | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Movement                | Movement Key                 | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Movement                | Date Key                     | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Order                   | Order Key                    | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Order                   | Order Date Key               | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Purchase                | Purchase Key                 | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Purchase                | Date Key                     | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Sale                    | Sale Key                     | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Sale                    | Invoice Date Key             | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Stock Holding           | Stock Holding Key            | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Transaction             | Transaction Key              | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Transaction             | Date Key                     | 2         | NULL      |
    | WideWorldImportersDW | Integration   | City_Staging            | City Staging Key             | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Customer_Staging        | Customer Staging Key         | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Employee_Staging        | Employee Staging Key         | 1         | NULL      |
    | WideWorldImportersDW | Integration   | ETL Cutoff              | Table Name                   | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Lineage                 | Lineage Key                  | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Movement_Staging        | Movement Staging Key         | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Order_Staging           | Order Staging Key            | 1         | NULL      |
    | WideWorldImportersDW | Integration   | PaymentMethod_Staging   | Payment Method Staging Key   | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Purchase_Staging        | Purchase Staging Key         | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Sale_Staging            | Sale Staging Key             | 1         | NULL      |
    | WideWorldImportersDW | Integration   | StockHolding_Staging    | Stock Holding Staging Key    | 1         | NULL      |
    | WideWorldImportersDW | Integration   | StockItem_Staging       | Stock Item Staging Key       | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Supplier_Staging        | Supplier Staging Key         | 1         | NULL      |
    | WideWorldImportersDW | Integration   | Transaction_Staging     | Transaction Staging Key      | 1         | NULL      |
    | WideWorldImportersDW | Integration   | TransactionType_Staging | Transaction Type Staging Key | 1         | NULL      |
    +----------------------+---------------+-------------------------+------------------------------+-----------+-----------+
    

    例3–テーブルスキーマを指定する

    次の例では、結果を特定のテーブルスキーマに絞り込みます。

    EXEC sp_primarykeys 
      @table_server = 'Homer',
      @table_schema = 'Fact',
      @table_catalog = 'WideWorldImportersDW';
    

    結果:

    +----------------------+---------------+---------------+-------------------+-----------+-----------+
    | TABLE_CAT            | TABLE_SCHEM   | TABLE_NAME    | COLUMN_NAME       | KEY_SEQ   | PK_NAME   |
    |----------------------+---------------+---------------+-------------------+-----------+-----------|
    | WideWorldImportersDW | Fact          | Movement      | Movement Key      | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Movement      | Date Key          | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Order         | Order Key         | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Order         | Order Date Key    | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Purchase      | Purchase Key      | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Purchase      | Date Key          | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Sale          | Sale Key          | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Sale          | Invoice Date Key  | 2         | NULL      |
    | WideWorldImportersDW | Fact          | Stock Holding | Stock Holding Key | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Transaction   | Transaction Key   | 1         | NULL      |
    | WideWorldImportersDW | Fact          | Transaction   | Date Key          | 2         | NULL      |
    +----------------------+---------------+---------------+-------------------+-----------+-----------+
    

    1. データベースメールプロファイル(SSMS)内のアカウントの優先度を変更する

    2. MySQLでrootユーザーとして設定およびログインする方法

    3. SQL Server(T-SQL)でデータファイルのファイルサイズを大きくする方法

    4. CentOS 7 /RHEL7にMariaDBをインストールする方法