Hallo,
ich versuche einen Datensatz in einer Anderen DB auf einem Anderen Server upzudaten, Folgendes habe ich micht bis jetzt überlegt.
DECLARE @wugserver AS varchar
DECLARE @wugdb AS varchar
DECLARE @wuguser AS varchar
DECLARE @wugpass AS varchar
DECLARE @maintenanceOn AS varchar
DECLARE @maintenanceOff AS varchar
SELECT @wugserver = WugServerIP FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wugdb = WugDBName FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wuguser = WugDBUser FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wugpass = WugDBPass FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SET @maintenanceOn = 'UPDATE Device SET nWorstStateID = 4 ,nBestStateID = 4 ,bManualMaintenanceMode = 1 WHERE nDeviceID = '
SET @maintenanceOff = 'UPDATE Device SET nWorstStateID = 5 ,nBestStateID = 5 ,bManualMaintenanceMode = 0 WHERE nDeviceID = '
IF UPDATE(inserted.DSLStatus)
BEGIN
IF (inserted.nDeviceID is not null)
BEGIN
IF (@wugserver is not null)
BEGIN
IF (inserted.DSLStatus <> 4)
BEGIN
OPENROWSET('SQLOLEDB',' + @wugserver + ';' + @wuguser + ';' + @wugpass + ',@maintenanceOn + inserted.nDeviceID )
END
ELSE
OPENROWSET('SQLOLEDB',' + @wugserver + ';' + @wuguser + ';' + @wugpass + ',@maintenanceOff + inserted.nDeviceID)
END
END
END
Das sind die Fehllermeldungen vom SQL Server.
Msg 102, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 60
Falsche Syntax in der Nähe von '.'.
Msg 156, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 72
Falsche Syntax in der Nähe des 'END'-Schlüsselwortes.
Msg 102, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 74
Falsche Syntax in der Nähe von 'END'.
also was ich versuche ist auf Verschiedene in der DB deffinierten SQL Server zuzugreifen und dort einen Vorhandenen DS (nDeviceID) upzudaten abhänig vom gewählten Status in meiner DB (DSLStatus). Das ganze soll noch dazu ein trigger werden. gelöst habe ich das bisher mit VBA im Frontend das möchte ich jetzt aber dem SQL server überlassen. Oder gibt es die möglichkeit in einem Trigger auch VBscripte laufen zu lassen?
Vielen Dank für eure hilfe.
ich versuche einen Datensatz in einer Anderen DB auf einem Anderen Server upzudaten, Folgendes habe ich micht bis jetzt überlegt.
DECLARE @wugserver AS varchar
DECLARE @wugdb AS varchar
DECLARE @wuguser AS varchar
DECLARE @wugpass AS varchar
DECLARE @maintenanceOn AS varchar
DECLARE @maintenanceOff AS varchar
SELECT @wugserver = WugServerIP FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wugdb = WugDBName FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wuguser = WugDBUser FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SELECT @wugpass = WugDBPass FROM tab_Niederlassungen WHERE (tab_Niederlassungen.ID = inserted.NLID);
SET @maintenanceOn = 'UPDATE Device SET nWorstStateID = 4 ,nBestStateID = 4 ,bManualMaintenanceMode = 1 WHERE nDeviceID = '
SET @maintenanceOff = 'UPDATE Device SET nWorstStateID = 5 ,nBestStateID = 5 ,bManualMaintenanceMode = 0 WHERE nDeviceID = '
IF UPDATE(inserted.DSLStatus)
BEGIN
IF (inserted.nDeviceID is not null)
BEGIN
IF (@wugserver is not null)
BEGIN
IF (inserted.DSLStatus <> 4)
BEGIN
OPENROWSET('SQLOLEDB',' + @wugserver + ';' + @wuguser + ';' + @wugpass + ',@maintenanceOn + inserted.nDeviceID )
END
ELSE
OPENROWSET('SQLOLEDB',' + @wugserver + ';' + @wuguser + ';' + @wugpass + ',@maintenanceOff + inserted.nDeviceID)
END
END
END
Das sind die Fehllermeldungen vom SQL Server.
Msg 102, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 60
Falsche Syntax in der Nähe von '.'.
Msg 156, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 72
Falsche Syntax in der Nähe des 'END'-Schlüsselwortes.
Msg 102, Level 15, State 1, Procedure T_tab_Filialliste_UTrig, Line 74
Falsche Syntax in der Nähe von 'END'.
also was ich versuche ist auf Verschiedene in der DB deffinierten SQL Server zuzugreifen und dort einen Vorhandenen DS (nDeviceID) upzudaten abhänig vom gewählten Status in meiner DB (DSLStatus). Das ganze soll noch dazu ein trigger werden. gelöst habe ich das bisher mit VBA im Frontend das möchte ich jetzt aber dem SQL server überlassen. Oder gibt es die möglichkeit in einem Trigger auch VBscripte laufen zu lassen?
Vielen Dank für eure hilfe.
Comment