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

リモート サーバーにアクセスするための SP_ExecuteSql を使用した完全修飾テーブル名

    これを行う必要があります。パラメータ化することはできません

    ....
    SET @Sql = 'UPDATE ' + @server_name_param + '.dba_sandbox.dbo.SomeTable SET SomeCol=''data'''
    ....
    

    編集:純粋な DBA 時代に使用した別の方法があります

    EXEC sp_setnetname 'AdhocServer', @SERVER_NAME
    UPDATE AdhocServer.dba_sandbox.dbo.SomeTable SET SomeCol 'data'
    EXEC sp_setnetname 'AdhocServer', 'MeaninglessValue'
    

    sp_setnetname SQL Server 2000 から 2008 まであります

    編集2. パーミッション :

    EXECUTE AS LOGIN ='login_name'<を試してください。 /コード> ここで、login_name はスーパーユーザーです

    私はこれを実際に使用したことがないので (テストには "AS USER" を使用します)、細かい点はわかりません...

    編集 3:同時実行のために、sp_getapplock とストアド プロシージャ、またはその他の同時実行制御メカニズムの使用を検討してください。



    1. Oracleで空のテーブルをエクスポートする方法

    2. 大規模なデータセットのPostgresに列をドロップする

    3. Oracleデータベースへの自動接続の繰り返しを防ぐにはどうすればよいですか?

    4. Yiiで日付をNULLに設定するにはどうすればよいですか?