Ich habe einen Microsoft SQL Server-Trigger, der eine entfernte Datenbank mit neuen Werten aktualisiert, wenn die lokale Datenbank aktualisiert wird. Alles funktioniert gut, und ich habe das Skript getestet und es aktualisiert sich gut, es sei denn, es gibt einen Nullwert.T-SQL-Openquery wird nicht mit NULL aktualisiert
Der Code ist unten:
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)
Alles funktioniert gut, wenn alle Felder Werte haben, aber wenn eine Spalte null ist, dann wird die Abfrage nicht die Zeile überhaupt aktualisieren, geworfen keine Fehler. Ich habe versucht, COALESCE()
zu verwenden, um die Nullvariablen zu leeren Zeichenfolgen zu ändern, und es wird dann die Zeile aktualisieren, aber alle Nullspalten werden 0 und ich möchte, dass sie als NULL
Werte bleiben. Alle Spalten in beiden Datenbanken lassen Nullwerte zu, und der Standardwert ist null, weshalb ich nicht sicher bin, warum ich die Datenbank nicht aktualisieren kann.
Jede Hilfe wäre nett, danke!
Warum wurde dieses Tag mit MySQL markiert? – tadman
Vergessen zu erwähnen, dass ich openquery zur Interaktion mit einer MySql-Datenbank verwendet habe –
Sie stellen eine Verbindung zu MySQL * über * SQL Server her? Das klingt nach einem Rezept für Ärger. 'NULL' Werte sind keine Zeichenketten. Sie müssen anders entflohen sein. – tadman