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,如何为它们分配多个值?没有注释的向下投票对任何人都没有帮助。