ローカルデータベースが更新されたときにリモートデータベースを新しい値で更新するMicrosoft SQL Serverトリガーがあります。すべて正常に動作し、私はスクリプトをテストし、null値がない限り、正常に更新されます。NULL値でT-SQL OpenQueryが更新されない
コードは以下の通りです:すべてのフィールドに値を持っていますが、一つの列がnullの場合、そのクエリは、すべての行を更新しません、エラーがスローされなかった場合
DECLARE @TSQL nvarchar(4000);
SELECT @TSQL =
'UPDATE
OPENQUERY(TEST,''SELECT * FROM test_db WHERE id = ' + convert(VARCHAR(MAX), @id) +''')
SET
parent_id = ' + convert(VARCHAR(MAX), @parent_id) + ', user_id = ' + convert(VARCHAR(MAX), @user_id) + ', item_id = ' + convert(VARCHAR(MAX), @item_id) + ''
EXEC (@TSQL)
すべてがうまく動作します。私はCOALESCE()
を空の文字列にnull変数を変更するために使用しようとし、その後、行を更新しますが、すべてのnull列は0になり、私はそれらをNULL
値としてとどまりたいです。両方のデータベースのすべての列はnull値を許可し、デフォルトはnullなので、なぜデータベースを更新できないのか分かりません。
いいえ、ありがとう!
このタグが付けられたのはなぜですか? – tadman
私はオープンクエリを使用してMySqlデータベースと対話していました –
あなたは* * SQL Serverを介してMySQLに接続していますか?これはトラブルのレシピのように聞こえる。 'NULL'値は文字列ではありません。彼らは異なった逃げ道が必要です。 – tadman