我想往存储过程里传一个数组类型的参数,应该怎么写?存储过程是执行一个Insert操作,我想传两个数组类型的参数,一个放字段,一个放字段值,请大家指点

解决方案 »

  1.   

    USE pubs
    IF EXISTS (SELECT name FROM sysobjects 
          WHERE name = 'au_info2' AND type = 'P')
       DROP PROCEDURE au_info2
    GO
    USE pubs
    GO
    CREATE PROCEDURE au_info2
       @lastname varchar(30) = 'D%',
       @firstname varchar(18) = '%'
    AS 
    SELECT au_lname, au_fname, title, pub_name
    FROM authors a INNER JOIN titleauthor ta
       ON a.au_id = ta.au_id INNER JOIN titles t
       ON t.title_id = ta.title_id INNER JOIN publishers p
       ON t.pub_id = p.pub_id
    WHERE au_fname LIKE @firstname
       AND au_lname LIKE @lastname
    GO
    EXECUTE au_info2 @firstname = 'A%'
      

  2.   

    -- Or
    EXECUTE au_info2 'Hunter', 'Sheryl'
    -- Or
    EXECUTE au_info2 'H%', 'S%'
      

  3.   

    算了,还是不传数组了,问个简单点的吧
    现在我要在存储过程中要实现  Insert Into Table1(FA,FB) Value('Va','Vb')还是传两个参数Str1,Str2 都是字符串型的Str1 := 'FA,FB'
    Str2 := 'Va,Vb'就是把字段和字段值放在这两个参数里面,后执行 Insert Into Table1(@Str1) Value (@Str2)
    可是提示出错,不知要怎么写才好
      

  4.   

    你可以用ADOStoredProc(在ADO页)的控件的参数Prameters来输入参数!
      

  5.   

    在存储过程中根据所传参数把Sql语句作为字符串处理,然后执行这个字符串。
    declare @str nvarchar(100)
    set @str=N''+'Insert Into Table1('+@Str1+N') Value ('+@Str2+N')'
    --print @str
    exec (@str)