Dynamisches SQL Nicht Konvertieren von VARCHAR Zu INT. (sollte das nicht irgendwie)

Ich erhalte eine Fehlermeldung:

Fehler bei der Konvertierung beim konvertieren den varchar-Wert 'INSERT INTO TableRowCount (IntFieldID, DecimalField) WÄHLEN Sie" Daten-Typ "int"

Verwenden Sie den folgenden code:

DECLARE @start INT -- @start is an INT
SET @start = 1 -- INT

DECLARE @sql NVARCHAR(MAX)
SET @sql = 'INSERT INTO TableRowCount (IntFieldID, DecimalField)
SELECT ' + @start +', COUNT(*)
FROM dbo.somewhere' -- location is irrelevant

EXECUTE(@sql) -- this is where it fails

Wenn ich entfernen IntFieldID und die @start es wird die Arbeit mit einer Beilage (obwohl es Niederlagen der Zweck). Ich habe versucht, darunter eine SELECT CAST(' + @start + ' AS INT), das scheint ein wenig überflüssig, da @start ist ein INT schon (Gießen ein INT als INT), aber das funktioniert auch nicht. Ich habe auch versucht, beginnend mit einer N' DYNAMIC-SQL -, die nicht arbeiten, ich habe versucht, mit drei ''' um alles (nicht Arbeit), und in ein paar Orte, die ich online Lesen, Antworten vorgeschlagen, setzen Sie die variable in den string, der den Fehler generiert:

Erklären muß, Skalare variable @start

(keine überraschung, als das nicht richtig).

InformationsquelleAutor Question3CPO | 2013-03-28
Schreibe einen Kommentar