create proc orderitem @order_num varchar(40) = null
 as 
   alter table sell_order add @order_num 以上我自己写的一个过程,SQL 2000 提示 第三行 @order_num 语法有问题。。
我想知道真确的写法应该怎么写。原问题是:创建一个存储过程,可以插入列名。

解决方案 »

  1.   

    create proc orderitem @order_num varchar(40) = null
     as 
       exec('alter table sell_order add '+@order_num)
    go
      

  2.   

    create proc orderitem @order_num varchar(40) = null
    as 
    if @order_number is not null
       exec('alter table sell_order add '+@order_num)
       go
    else
       return小修改了一下stone的
      

  3.   

    alter proc orderitem @order_num varchar(40) = null
     as 
       exec('alter table sell_order add  '+@order_num  +' varchar(40)')
      

  4.   


    列是什么类型,自己改一下+' varchar(40)')
      

  5.   


     exec('alter table sell_order add '+@order_num)
    能解释一下这句,里面的''单引号有什么作用吗?谢谢了
      

  6.   

     应该改为(已测试)
    create proc orderitem @order_num varchar(40) = null
     as 
       exec('alter table sell_order add '+@order_num+' varchar(40)')
    go
      

  7.   

    CREATE PROC [ EDURE ] procedure_name [ ; number ]
        [ { @parameter data_type }
            [ VARYING ] [ = default ] [ OUTPUT ]
        ] [ ,...n ] [ WITH
        { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 
    原来 as sql_statement   也可以用 EXEC  ,看书的时候,例子上都是SELECT比较多,先入为主了~~~
    学到了~~