我有一个包含以下列的表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列插入值答案 0 :(得分:-1)
您尝试执行的操作是将数组(即多个数组)作为输入参数传递给存储过程。
有了这样的理解,我不会重新/抄袭已经很好的答案,我只会指出你......