Azure SQL Database の Elastic Database で クエリのリモート実行

他のDBに対してクエリを実行するときに、「sp_execute_remote」というストアドプロシージャを使用することをSEの雑記で知ったので試してみました。

SQL Database で外部データソースを使用した直接のクエリ実行 – SEの雑記

EXTERNAL DATA SOURCE を作るまでは、こちらもSEの雑記 「SQL Database で他 DB に対しての検索が可能になりました」を参考にCREDENTIAL を作り

CREATE DATABASE SCOPED CREDENTIAL SqlUser WITH IDENTITY='User1', SECRET='P@ssw0rd'

EXTERNAL DATA SOURCE 作って

CREATE EXTERNAL DATA SOURCE TestDB2 
WITH 
( 
    TYPE=RDBMS, 
    LOCATION='XXXXXXX.database.windows.net', 
    DATABASE_NAME='TestDB2', 
    CREDENTIAL= SqlUser 
); 

準備が終われば、あとは実行するだけです。

パラメータなし

EXEC sp_execute_remote N'TestDB2', N'SELECT * FROM db2notable'

パラメータあり

EXEC sp_execute_remote N'TestDB2', N'SELECT * FROM db2notable WHERE id = @id', @params = N'@id int', @id = 10

 

準備で作ったものは

SELECT * FROM sys.external_data_sources

SELECT * FROM sys.database_credentials

で確認。

 

DROP EXTERNAL DATA SOURCE TestDB2

DROP DATABASE SCOPED CREDENTIAL SqlUser  

で削除な感じです。

Comments are closed.

Post Navigation