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

时间:2015-11-05 13:33:22

标签: sql-server stored-procedures

我有一个包含以下列的表Zone

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

如何更改它以插入3列的值?

或者为这种情况创建一个程序?

我希望使用逗号

的3列插入值

1 个答案:

答案 0 :(得分:-1)

您尝试执行的操作是将数组(即多个数组)作为输入参数传递给存储过程。

有了这样的理解,我不会重新/抄袭已经很好的答案,我只会指出你......

How to pass an array into a SQL Server stored procedure