hallo zusammen
hab ein problem mit einem sql-statement, dass ich per stored procedure ausführen möchte auf nem MSSQL:
ALTER PROCEDURE sp_admin_activate
@nID AS INTEGER,
@bActive AS INTEGER,
@strTable AS VARCHAR(64)
AS
DECLARE @strSQL AS NVARCHAR(4000)
SET @strSQL = ''
SET @strSQL = @strSQL + 'UPDATE '
SET @strSQL = @strSQL + @strTable + ' SET [active] = ' + @bActive + ' WHERE '
SET @strSQL = @strSQL + @strTable
SET @strSQL = @strSQL + '_ID = ' + @nID
EXEC sp_executesql @strSQL
GO
ich will also ein dynamisches sql-statement @strSQL erstellen, um so eine globale aktivierungs-funktion zu haben. die funktion aktiviert den entsprechenden datensatz auf live/nicht live.
problem:
wenn ich das statement ausführe zb per "exec sp_admin_activate 1, 0, 'events')" bekomme ich folgende fehlermeldung:
"Syntaxfehler beim Konvertieren des nvarchar-Wertes 'UPDATE events SET [active] = '' in eine Spalte vom Datentyp int."
was mache ich falsch? @strSQL ist doch nicht INT und ich sehe keine neuen zuweisungen...
vielen dank für hilfe :)
sebastian