0
我有一個存儲過程返回一個網格結果。如圖所示,我在將@idCC
參數傳輸到SQL查詢時遇到了一些基本問題。我知道SQL的作品,如果我刪除參數和硬編碼的數值。如何讓查詢將@idCC
讀取到顯示的查詢中?SQL Server存儲過程 - 參數
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 = '''[email protected]+''') AS x
PIVOT (MAX(IsInGroup)
FOR gName IN(' + @ListOfGroups + ')) as p');
EXEC(@sql);
END
如何顯示在查詢字符串,如果你'PRINT'它? – Alfabravo
更換WHERE dbo.CC_Contacts.idCC = '' '+ @ + IDCC' '' 與WHERE dbo.CC_Contacts.idCC = + @idCC –
行的樣子:| IDCC | GroupName1 | GroupName2 | GroupName3 |值| | Null | X | Null | X | – PigsIncorporated