아래 쿼리에서 쉼표로 구분 된 값을 삭제하려고하면 "varchar 값을 변환 할 때 변환에 실패했습니다. '1,3 'to data type int. "이 문제를 극복하는 데 도움이됩니다.SQL Server에서 varchar 값 '1,3'을 데이터 형식 int로 변환 할 때 변환이 실패했습니다
ALTER PROCEDURE [dbo].[spDeleteCustomerGroupLocationMap]
-- Add the parameters for the stored procedure here
@i_LocationID int,
@i_CustomerGroupID varchar
--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 EXISTS (SELECT 1 FROM CustomerGroupLocationMap WHERE LocationID = @i_LocationID AND CustomerGroupID = @i_CustomerGroupID)
BEGIN
DELETE CustomerGroupLocationMap WHERE LocationID = @i_LocationID AND CustomerGroupID = (SELECT * FROM dbo.CSVToTable(@i_CustomerGroupID));
END
END
에서 실제 열 이름으로 대체
에 "[열 이름]"을 변경하지만 '1,3'를 int 아니므로보고 - 당신을 위해 왜 어떤 가치를 찾고 계십니까? –
@i_CustomerGroupID의 크기가 지정되지 않아 기본값 1자를 사용합니다. 당신은 아마도 그것이 다른 어떤 것이되기를 원할 것입니다. –
CSVToTable의 결과는 어떻게됩니까? – Squirrel