【发布时间】:2014-07-18 13:57:05
【问题描述】:
在下面的代码中,我将多个用逗号分隔的值传递给@i_CustomerGroupID,将一个值传递给@i_LocationID。在这个问题中,我遇到了一个问题“子查询返回了超过1 个值。当子查询跟随=,时,这是不允许的! =、、>= 或当子查询用作表达式时。 声明已终止。”。请帮我解决问题。
ALTER PROCEDURE [dbo].[spInsertCustomerGroupLocationMap]
-- Add the parameters for the stored procedure here
@i_LocationID int,
@i_CustomerGroupID varchar(100)
--WITH ENCRYPTION
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
IF NOT EXISTS (SELECT 1 FROM CustomerGroupLocationMap WHERE LocationID = @i_LocationID AND CustomerGroupID = @i_CustomerGroupID)
BEGIN
INSERT INTO CustomerGroupLocationMap (LocationID, CustomerGroupID) VALUES (@i_LocationID, (SELECT * FROM dbo.CSVToTable(@i_CustomerGroupID)));
END
END
【问题讨论】:
标签: sql sql-server