日期:2014-05-16  浏览次数:20424 次

sql2005 创建表时批量添加字段
表名:table1
字段从a1到a100,数据类型不限,如何批量添加?请教高手。
------解决方案--------------------
SELECT 
'alter table table1 add a'+LTRIM(number)+' varchar(max)'
FROM 
master..spt_values 
WHERE 
type='p' AND number BETWEEN 1 AND 100

执行这个语句 COPY结果到SSMS执行
------解决方案--------------------

declare @tsql varchar(8000)

select @tsql=isnull(@tsql+',','create table table1(')
            +'[a'+rtrim(number)+'] varchar(10)'
 from master.dbo.spt_values
 where type='P' and number between 1 and 100

select @tsql=@tsql+')'

exec(@tsql)


-- 结果
select b.name 'ColumnName'
 from sys.tables a
 inner join sys.columns b on a.object_id=b.object_id
 where a.name='table1'

/*
ColumnName
-----------------
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17
a18
a19
a20
a21
a22
a23
a24
a25
a26
a27
a28
a29
a30
a31
a32
a33
a34
a35
a36
a37
a38
a39
a40
a41
a42
a43
a44
a45
a46
a47
a48
a49
a50
a51
a52
a53
a54
a55
a56
a57
a58
a59
a60
a61
a62
a63
a64
a65
a66
a67
a68
a69
a70
a71
a72
a73
a74
a75
a76
a77
a78
a79
a80
a81
a82
a83
a84
a85
a86
a87
a88
a89
a90
a91
a92
a93
a94
a95
a96
a97
a98
a99
a100

(100 row(s) affected)
*/