2015-11-05 80 views
0

我有一个包含这些列的表Zone插入列表到SQL Server存储过程

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

[分割功能相当于T-SQL的可能的复制?](http://stackoverflow.com/questions/697519/split-function-equivalent-in-t-sql) – InbetweenWeekends

+0

您的输入参数Province_Id和City_ID都是INT,您如何为它们分配多个值? – EricZ

回答

-1

插入值什么你试图做的是传递一个数组(当然,多个阵列)作为输入参数的存储过程。

了解这一点,而不是改写/剽窃什么已经是一个很好的答案,我就点你在这个...

How to pass an array into a SQL Server stored procedure

+0

没有评论的Downvotes对任何人都没有帮助。 – LDMJoe