【发布时间】:2015-11-05 21:55:22
【问题描述】:
我有一个表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 列的值
【问题讨论】:
-
你的输入参数Province_Id和City_ID都是INT,如何给它们赋值?
标签: sql-server stored-procedures