維持するデータベースが多数あり、環境ごとにスクリプトを作成したくないため、リンク サーバーと組み合わせてシノニムを作成し、更新ステートメントのテーブルを抽象化しました。
私の問題は、24 ~ 32 文字を超える varchar(max) フィールドを更新できないように見えることです (それはさまざまです!)。
私はウェブを調査してきましたが、これに直接関係するものは何も見つかりません。(更新: ネットワーク経由のサーバーではなく、ワークステーションにリンクすると、ローカルのリンクされた SQL サーバーが正常に更新されます。これは、ホストの一部の環境の問題だと思いますか?おそらく、定義された制限がありますか?)
以下は、私がどのように設定したかの例です。
--I create some dynamic sql to create the sysnonyms for me.
declare @Synonym varchar(30) = 'sym_Employee'
declare @DBTable = 'Employee'
Select @Stmt = 'create synonym ' + @Synonym + ' for TargetSQLServer.' + @DBName + '.dbo.' + @DBTable + ';'
exec @Stmt
--this statment stops at 24 chars, but the column def is varchar(max)
update sym_employee
set Notes = '012345678901234567890123456789'
where employee_ID = 1