ALTER TABLE 表名 ADD 列名 类型 ... 其中列名和类型我想以存储过程参数的形式用户自己定义~这样可以吗!我想实现用户自定义字段

解决方案 »

  1.   

    如 @sql='create table '+@表+ '('+@字段1+@类型+','+....+ ')'
    再exec @sql
      

  2.   

    create proc a @a varchar(20),@b varchar(10) as
    exec 'ALTER TABLE 表名 ADD '+@a+' '+@b
      

  3.   


    create table tb
    (
      code varchar(10)
    )select * from tb
    declare @sql varchar(8000)
    declare @tablename varchar(50)
    declare @columnname varchar(50)
    declare @type varchar(50)
    select @tablename='tb',@columnname='cid',@type='int identity(1,1)'
    set @sql='alter table '+@tablename+' add '+@columnname+' '+@type
    print @sql
    exec(@sql)
    select * from tb
      

  4.   

    exec ('ALTER TABLE 表名 ADD '+@a+' '+@b+'')--修正
    exec a 'a', 'int' --执行
      

  5.   

    如果我的类型上varchar(50)怎么办啊
      

  6.   

    create table tb
    (
      code varchar(10)
    )create procedure upaltertable
    @tablename varchar(50),
    @columnname varchar(50),
    @type varchar(100)
    as 
    begin
      
      exec('alter table '+@tablename+' add '+@columnname+' '+@type)endexec  upaltertable 'tb','tempcolumn','varchar(500)'
      

  7.   

    alter table 表名 add 获得列名的存储过程,获得类型的存储过程