5

データベース名は異なるがテーブルとデータが同じである2つの異なるサーバーでスクリプトを実行する必要があります。このために、私は次のステートメントを使用してみました。

if (@@servername= 'srvrA')
    begin 
        use dbA
    end
else    
begin 
        use dbB
    end

ただし、srvrBの場合、データベースdbAが存在しないことを示しています。

誰かが私がこれを達成するのを手伝ってもらえますか?

4

2 に答える 2

2

もう1つのオプション

何かのようなもの:

sp_addlinkedserver  
  @server= N'srvrA',
  @srvproduct= N'',
  @provider= N'SQLNCLI',
  @datasrc= N'srvrA';

sp_addlinkedsrvlogin
  @rmtsrvname = 'srvrA' ,
  @useself = 'FALSE' ,
  @locallogin = 'your_local_login' ,
  @rmtuser = 'your_remote_login' ,
  @rmtpassword = 'your_password'

そして、スクリプトは次のようになります

DECLARE @@srvname nvarchar(10) = 'srvrA'

IF (@@servername = @@srvname)
  BEGIN
    SELECT *
    FROM srvrA.dbA.your_schema.your_table
  END    
ELSE    
  BEGIN
    SELECT *
    FROM srvrB.dbB.your_schema.your_table
  END    
于 2012-12-25T23:25:53.850 に答える
-1

SQLCMDモードを有効にすると、目標を達成できます。SQLManagementStudioの[クエリ]メニューからSQLCMDモードを切り替えます。その後、次のスクリプトが機能します。

if (@@servername = 'srvrA')
    begin
        :setvar dbname dbA
        use $(dbname)
    end
else    
    begin
        :setvar dbname dbB
        use $(dbname)
    end
于 2012-12-21T06:54:51.247 に答える