Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie eine durch Kommas getrennte Zeichenfolge in einer dynamischen Abfrage in SQL

Wenn Sie ein solches dynamisches SQL erstellen, müssen Sie Ihren Parameter in doppelte Anführungszeichen '' setzen

declare @ProductIDs varchar(11)
declare @SQL varchar(max)

set @ProductIDs='1,2,3,4'
declare @query varchar(max)
--set @query= @ProductIDs +','[email protected]

SELECT @SQL = 'SELECT val FROM dbo.[fnDelimitedStringToTable]('''+ @ProductIDs +''' , '','')'

Exec(@SQL)

Auf diese Weise lautet die SQL-Anweisung:

SELECT val FROM dbo.[fnDelimitedStringToTable]('1,2,3,4' , '','')

und nicht:

SELECT val FROM dbo.[fnDelimitedStringToTable](1,2,3,4 , '','')