[英]SQL Server stored procedure - parameters
I have a stored procedure that returns a grid result. 我有一个返回网格结果的存储过程。 I'm having some fundamental issues with transferring the @idCC
parameter to the SQL query as shown. 如图所示,将@idCC
参数传输到SQL查询时遇到一些基本问题。 I know the SQL works if I remove the parameter and hard code in a number value. 我知道如果删除数字值中的参数和硬代码,SQL将会起作用。 How do I allow the query to read @idCC
to the query shown? 如何允许查询读取@idCC
到显示的查询?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_CC_ContactGroupList]
(@idCC int)
AS
BEGIN
DECLARE @ListOfGroups VARCHAR(MAX) =
(STUFF((SELECT DISTINCT ',' + QUOTENAME(GroupName)
FROM dbo.CC_Groups
WHERE IsContactGroup = '1'
FOR XML PATH('')), 1, 1, ''));
DECLARE @sql VARCHAR(MAX) = ('SELECT *
FROM
(SELECT
dbo.CC_Contacts.idCC,
dbo.CC_Groups.GroupName AS gName,
''X'' AS IsInGroup
FROM
dbo.CC_ContactGroups
INNER JOIN
dbo.CC_Groups ON dbo.CC_ContactGroups.idGroup = dbo.CC_Groups.idGroup
INNER JOIN
dbo.CC_Contacts ON dbo.CC_ContactGroups.idCC = dbo.CC_Contacts.idCC
WHERE
dbo.CC_Contacts.idCC = '''+@idCC+''') AS x
PIVOT (MAX(IsInGroup)
FOR gName IN(' + @ListOfGroups + ')) as p');
EXEC(@sql);
END
In your stored procedure [dbo].[sp_CC_ContactGroupList]
, replace 在您的存储过程[dbo].[sp_CC_ContactGroupList]
,替换
dbo.CC_Contacts.idCC = '''+@idCC+'''
with 与
dbo.CC_Contacts.idCC = '''+cast(@idCC as varchar)+'''
Now it will show you @idCC
现在它将向您显示@idCC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.