写一个存储过程,想把字段名和数据类型名做成数组形式的,每次执行的时候,将字段个数进行初始化,然后将数据类型进行初始化,每个字段名可变,数据类型名也可变,能实现不?

解决方案 »

  1.   

    一般来说 是建一张表
    类似于数据字典表,
    表名 列名 列类型 默认值 ==
    table a  int  0
    table b  varchar(20) null根据这张表动态拼接字符串,
    不过最好还是别这么做,效率低下
    自己建表也没那么复杂。
      

  2.   

    可以实现, 但是好像没有你所说的数组, 参数为 '字段名1 类型1,字段名2 类型2,字段名3 类型3' 的格式吧create proc proc_addfields
    @tablename  nvarchar(776),
    @fields nvarchar(max) -- '字段名1 类型1,字段名2 类型2,字段名3 类型3' 
    as
    begin
    declare @sql nvarchar(max)
    set @sql = N'alter table ' + @tablename + ' add ' + @fields
    exec(@sql)
    end