Sql server 将树列列表插入SQL Server存储过程

Sql server 将树列列表插入SQL Server存储过程,sql-server,stored-procedures,Sql Server,Stored Procedures,我有一个表区域,其中包含以下列: ID Name Province_Id City_Id 我想传递一个包含3列的列表,并使用SQL Server存储过程将它们插入到该表中 像这样 Name 'a,b,c,d' Province_Id 1,2,3,4 City_Id 1,2,3,4 我编写了这个过程,但这个过程只适用于一列 CREATE PROCEDURE [dbo].[CreateZone] @Name NVARCHAR(50),

我有一个表
区域
,其中包含以下列:

ID
Name
Province_Id
City_Id
我想传递一个包含3列的列表,并使用SQL Server存储过程将它们插入到该表中

像这样

Name       'a,b,c,d'
Province_Id 1,2,3,4
City_Id     1,2,3,4
我编写了这个过程,但这个过程只适用于一列

CREATE PROCEDURE [dbo].[CreateZone]
    @Name                  NVARCHAR(50),
    @BuildingProvince_Id   INT,
    @BuildingCity_Id       INT
AS
BEGIN
    BEGIN TRY
        DECLARE @xml xml;   

        SET @xml = cast(('<X>'+replace(@Name,',' ,'</X><X>')+'</X>') as xml)

        INSERT INTO ZoneCategory
            SELECT  N.value('.', 'varchar(100)') as value 
            FROM @xml.nodes('X') as T(N)

        SELECT 100
    END TRY
BEGIN CATCH
    EXEC InsertSQLError
        SELECT -100 as Error
END CATCH
END
CREATE过程[dbo].[CreateZone]
@名称NVARCHAR(50),
@正在构建省Id INT,
@建筑城市Id INT
像
开始
开始尝试
声明@xml;
将@xml=cast(“”+replace(@Name,“”,“”)设置为xml)
插入区域类别
选择N.value('.','varchar(100')作为值
从@xml.nodes('X')作为T(N)
选择100
结束尝试
开始捕捉
EXEC InsertSQLError
选择-100作为错误
端接
终止
如何将其更改为插入3列的值

或者为此场景创建一个过程


我想用逗号为3列插入值,您试图做的是将一个数组(多个数组)作为输入参数传递给存储过程

有了这样的理解,我将向你们指出这一点,而不是重写/剽窃已经是一个很好的答案


您的输入参数Province\u Id和City\u Id可能都是INT,如何为它们分配多个值?没有注释的向下投票对任何人都没有帮助。