参数中的单独逗号字符串,并保存在表SQL中



我有一个带有逗号的参数。像@parameter = 'abc,xyz,fgh'我想像以下方式分开:

column1     column2
1           abc
1           xyz
1           fgh

我有一个触发器,该触发器正在接收一个名为 @packagecode 带有逗号值的参数。现在我想将其值分开并保存在表中。

下面是我到目前为止尝试过的SQLTRIGGER代码。

CREATE TRIGGER CustomerPackageSplit ON BM_CustomerInfo
FOR INSERT
AS
    declare @CustNIC int;
    declare @CustID varchar(100);
    declare @CustName decimal(10,2);
    declare @PackageCode varchar(100);
SELECT @CustNIC = i.CustNIC from inserted i;
SELECT @CustID = i.CustID from inserted i;
SELECT @CustName = i.CustName from inserted i;
SELECT @PackageCode = i.Package from inserted i;

INSERT INTO BM_CustPackage (CustNIC,CustID,CustName,PackageCode)
VALUES (@CustNIC,@CustID,@CustName,@PackageCode)
GO

SQL Server 2016 您可以使用string_split函数(更多信息此处)。

这是一个简单的查询,可以拆分您的逗号分隔值:

declare @parameter   varchar(100)
set @parameter = 'abc,xyz,fgh'
select 1 as column1, [value] as column2 
from string_split(@parameter, ',')

此命令的输出是:

╔═════════╦═════════╗
║ column1 ║ column2 ║
╠═════════╬═════════╣
║       1 ║ abc     ║
║       1 ║ xyz     ║
║       1 ║ fgh     ║
╚═════════╩═════════╝

对于较旧的SQL Server版本,您可以找到许多自定义拆分功能的实现,例如,此处或此处。

最新更新