字段存在哪些表中存在 都有记录
如何一次性调整某字段的类型后 将他所在的表内的该字段的类型 统一调整一致
例如fld1为char(20) 我要将fld1改为varchar(200)
要求结果 把fld1所在表内的类型都修改为varchar(200)
create table tbfldgx
(tbname varchar(20) null,
fldname varchar(20) null
)insert into tbfldgx
(tbnane,fldname)select 'tb1','fld1'
union
select 'tb1','fld2'
union
select 'tb1','fld3'
union
select 'tb2','fld2'
union
select 'tb2','fld3'
union
select 'tb3','fld1'
union
select 'tb3','fld2'
union
select 'tb3','fld3'
union
select 'tb4','fld1'
如果不使用游标 如何实现此功能
'ALTER TABLE '+a.name +' ALTER COLUMNS '+b.name + ' DEFAULT '''' VARCHAR(200) '
from
sysobjects a,syscolumns b
where
a.type = 'U'
and
b.id= a.id
and
a.name='fid1'把打印出来的结果拿出来执行
'ALTER TABLE '+a.name +' ALTER COLUMNS '+b.name + ' VARCHAR(200) '
from
sysobjects a,syscolumns b
where
a.type = 'U'
and
b.id= a.id
and
a.name='fid1'修改3楼
'ALTER TABLE '+a.name +' ALTER COLUMNS '+b.name + ' VARCHAR(200) '
from
sysobjects a,syscolumns b
where
a.type = 'U'
and
b.id= a.id
and
a.name='fid1'修改3楼
视图 sys.objects sys.columns
即可自己解决
数据表中字段 bh 在60个表中存在字段类型为 CHAR(10) 并且在很多表中都存在索引
现在我要将字段类型更改为 VARCHAR(20)
执行打印的结果是提示:ALTER TABLE TABLE1 ALTER COLUMN BH VARCHAR(20) NULL
--执行结果如下
消息 5074,级别 16,状态 1,第 1 行
索引'TABLE1' 依赖于 列'BH'。
消息 4922,级别 16,状态 9,第 1 行
由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN BH 失败。
请问如何 批处理这样的情况啊。最好不要动索引 因为表太多了 。