Utilizzare variabile all'interno di IN

lunedì 28 marzo 2011 - 17.34

autosblindo Profilo | Newbie

HO una tabella stupidissima
CREATE TABLE [dbo].[CP_PROVA]( [Id] [decimal](10, 0) NOT NULL, [Descrizione] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY]
Così popolata
INSERT INTO CP_PROVA VALUES(1, 'AAA') INSERT INTO CP_PROVA VALUES(2, 'BBB') INSERT INTO CP_PROVA VALUES(3, 'CCC') INSERT INTO CP_PROVA VALUES(4, 'DDD') INSERT INTO CP_PROVA VALUES(5, 'EEE')

Ho questa query di lettura
SELECT * FROM CP_PROVA WHERE ID IN (1, 2, 3)

Vorrei sostituire i valori 1, 2, 3 con una variabile:
SELECT * FROM CP_PROVA WHERE ID IN (@Id)
E' possibile? come devo fare?
Ho fatto alcuni tentativi, ho provato ad usare una variabile varchar e convertire id, ma non ne sono venuto a capo. Purtroppo google non mi è stato di aiuto, forse ho sbagliato la chiave di ricerca.

Grazie per l'aiuto.

lbenaglia Profilo | Guru

>Vorrei sostituire i valori 1, 2, 3 con una variabile:
>SELECT * FROM CP_PROVA WHERE ID IN (@Id)
>E' possibile? come devo fare?

Ciao,

Con SQL Server 2008 sono stati introdotti i Table-Valued Parameters:
http://msdn.microsoft.com/en-us/library/bb510489.aspx

Se utilizzi versioni precedenti puoi ricorrere a questa tecnica proposta da Fernando Guerrero:
http://groups.google.com/group/microsoft.public.it.sql/msg/996f270c0984d7d5?hl=it

>Grazie per l'aiuto.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5