2010-06-11 7 views
1

i en utilisant la requête dynamique pour transmettre les variablescomment passer des variables dans cette requête dynamique SQL

select a.TableName, COUNT(a.columnvalue) as '+'count'+' from Settings a 
where a.ColumnValue in ('+ @columnvalue +') and a.Value in (' + @value +') 

the @columnvalues = 'a','b','c' 
@value ='comm(,)','con(:)' 

comment transmettre cette dynamique dans la requête

une idée ???

+0

Quelle langue appelez-vous le SQL à partir? – Mark

Répondre

2

Je voudrais utiliser la commande sp_executesql.

plus de documentation est ici: http://msdn.microsoft.com/en-us/library/ms188001.aspx

Fondamentalement, vous définissez une requête SQL, et la liste des paramètres, et passer ensuite ceux avec vos paramètres réels dans cette méthode.

Donc, quelque chose comme ça (réel base)

CREATE PROCEDURE dbo.yourProc 
    @customerId INT 
AS 
DECLARE @sql NVARCHAR(1000) 
SET @sql = 'SELECT * FROM Customers WHERE CustomerId = @customerId' 

DECLARE @params NVARCHAR(1000) 
SET @params = '@customerId INT' 

EXEC dbo.sp_executesql @sql, @params, @customerId