[SQL] SPROC: list als parameter?

Pagina: 1
Acties:

  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Alloa,

Zit met een probleempje. Ik wil graag een lijst met waarden aan een stored procedure meegeven (MS-SQL 2K). Deze wil ik dan gebruiken om een WHERE IN clausule mee te vullen. dus stel @variabelen = '1,2,3' en gedeclareerd als varchar(255).

en mijn where-in clausule:
'WHERE t_id IN (@variabelen)'

Dan krijg ik de foutmelding:
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '1,2,3' to a column of data type int.

Het moet echter wel een varchar zijn als parameter, omdat de waarden comma-separated moeten worden meegegeven. Als ik de quotes weghaal, beschouwt SQL-server ze als aparte parameters.

Iemand anders met hetzelfde probleem. Daar staat alleen geen antwoord, want het linkje op die pagina klopt niet.

Ik wil liever geen temptable gebruiken omdat dit errug slecht voor de performance is. Can somebody help me plz!?

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Gebruik sp_executesql voor het uitvoeren van dynamische/samengestelde queries.
Als ik me niet vergis heeft op sqlmag.com ook ooit iets gestaan over dit vraagstuk, misschien dat je daar even kan zoeken?

Today's subliminal thought is:


  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
Woehoe!

Oplossing is gewoon wel een string meegeven ('1,2,3') maar daarna in de stored proc nog eens exec(@stringmetsqlquery) uitvoeren.
Dus:
SET @stringmetsqlquery = 'SELECT * FROM my_table WHERE t_id IN (' + @variabelen + ')'

en dan exec(@stringmetsqlquery)

Bedankt annie, ik vond het op de site van sqlmag :D
hier