2016-07-12 7 views
0

Code ErrorSQL dynamisch Verfahren

Ich habe zu sein versuchen, diese Prozedur auszuführen:

go 
declare @idnvarchar(max) 
declare @dia nvarchar(max) 
set @id='E4211537-09CD-45F2-BB5F-F20F642DE676' 
set @dia='ObjectSignal_2016_05_23 ' 
set @sqlstring = 'Select Code From ' [email protected]+ 'WHERE IdObject='[email protected]+'' 
EXEC sp_executesql @sqlstring 
go 

Aber ich bin immer das Problem, dass unten zeigen in dem Bild ist.

Mens. 102, Nivel 15, Estado 1, Linea 1

Sintaxis inkorrekt cerca de 'CD'.

+0

Microsoft sQL Server verwenden sp_executesql? – Drew

+0

sql 2008 r2 MICROSOFT – LuisBus90

+0

Sie müssen also den Text mit einem [Bearbeiten] in die Frage ausschneiden und einfügen. Wenn es doof aussieht, keine Sorge. Jemand wird es für Sie formatieren. Der tatsächlich gespeicherte Prozentext wird benötigt. – Drew

Antwort

0

Änderung der @sqlstring zu folgenden (Sie müssen die Zeichenfolge in einfache Anführungszeichen umschließen) und fügen Sie auch einen Raum vor WHERE

set @sqlstring = 'Select Code From ' + @dia + ' WHERE idObject = ''' + @id + '''' 

print @sqlstring 

auch vor Ausführung

aus der Zeichenfolge für die eigene Überprüfung drucken

beste Methode ist, mit dem Parameter

set @sqlstring = 'Select Code From ' + quotename(@dia) + ' WHERE idObject = @id' 
print @sqlstring 
exec sp_executesql @sqlstring, N'@id nvarchar(max)', @id 
+0

Vielen Dank Eichhörnchen, und vielen Dank für Ihre Erklärung, haben Sie einen schönen Tag :) – LuisBus90