当前位置: 代码迷 >> Sql Server >> 求一sql server 语句:怎么同时给多表新增一个相同的字段
  详细解决方案

求一sql server 语句:怎么同时给多表新增一个相同的字段

热度:9   发布时间:2016-04-24 10:06:59.0
求一sql server 语句:如何同时给多表新增一个相同的字段
例:数据库 dateA 中有 表 a, b, c, d, e 五个不同的表, 我想在 a, c , e 中新增一个 dzzt  的 字段。 sql  server 2000 语句 该如何写?
请大侠 指教
------解决方案--------------------
写5个alter表的语句
------解决方案--------------------
只能写五个,然后执行。
------解决方案--------------------

use dateA
go

alter table a add dzzt [数据类型]
go

alter table c add dzzt [数据类型]
go

alter table e add dzzt [数据类型]
go

------解决方案--------------------

declare @tab table(val varchar(30))
insert into @tab values('a'),
('b'),
('c'),
('d'),
('e')
declare @sql varchar(max)
select @sql=isnull(@sql+';','')+'alter table '+val+' add dzzt varchar(10)'
from @tab
--print (@sql)
exec (@sql)

 

------解决方案--------------------
可重复执行的脚本.

use dateA
go

if not exists(select 1 from syscolumns where id=object_id('a') and name='dzzt')
  alter table a add dzzt [数据类型]
go

if not exists(select 1 from syscolumns where id=object_id('c') and name='dzzt')
  alter table c add dzzt [数据类型]
go

if not exists(select 1 from syscolumns where id=object_id('e') and name='dzzt')
  alter table e add dzzt [数据类型]
go

------解决方案--------------------
3个alter table或者用企业管理器的图形化操作来增加
------解决方案--------------------
用 alter table a add dzzt?[数据类型]
------解决方案--------------------
分开写就行了。没办法一个语句就可以搞定
  相关解决方案