Ich habe versucht, wie eine select-Anweisung mit Top-Wert im Parameter zu verwenden:Wählen Sie oben in SQL nvarchar statt int
CREATE PROCEDURE PROC_TOP @NUM INT AS
DECLARE @SQL VARCHAR(255) = 'SELECT TOP ' + @NUM + ' * FROM MYTABLE;'
BEGIN
EXEC sp_executesql @SQL
END
Es zurückkehren mir ein Fehler:
Conversion failed when converting the varchar value 'SELECT TOP ' to data type int.
Aber wenn ich von ändern int
zu nvarchar
seine Arbeit:
PROC_TOP @NUM nvarchar(50)
DECLARE @SQL nvarchar(255)
Meine Frage ist:
Warum akzeptiert Sql den Datentyp nvarchar
anstelle von Int
?
implizit Datentyp-Konvertierung tun Diese Arbeit ist, wenn SQL VARCHAR ERKLÄREN (255) Änderung SQL NVARCHAR verzollen (255) .. danke - – redzsol