原有類型 varchar 10 ,現在需要升級為 varchar 12 ,
目前的方式:
打開每個表的設計器,一個一個改
請問有沒有什麼快捷的方法呢?
ALTER COLUMN
指定要更改给定列。如果兼容级别是 65 或小于 65,将不允许使用 ALTER COLUMN。有关更多信息,请参见 sp_dbcmptlevel。
要更改的列不能是:
数据类型为 text、image、ntext 或 timestamp 的列。
表的 ROWGUIDCOL 列。
计算列或用于计算列中的列。
被复制列。
用在索引中的列,除非该列数据类型是 varchar、nvarchar 或 varbinary,数据类型没有更改,而且新列大小等于或者大于旧列大小。
用在由 CREATE STATISTICS 语句创建的统计中的列。首先用 DROP STATISTICS 语句删除统计。由查询优化器自动生成的统计会由 ALTER COLUMN 自动除去。
用在 PRIMARY KEY 或 [FOREIGN KEY] REFERENCES 约束中的列。
用在 CHECK 或 UNIQUE 约束中的列,除非用在 CHECK 或 UNIQUE 约束中的可变长度列的长度允许更改。
有相关联的默认值的列,除非在不更改数据类型的情况下允许更改列的长度、精度或小数位数。
帮助中说有主键和外键约束的不能alter column
sp_configure 'allow update', 1
reconfigure with override
update syscolumns set length=17 from sysobjects where syscolumns.name='id' and sysobjects.id=syscolumns.id and sysobjects.name='student'
sp_configure 'allow update', 0
reconfigure with override
改系统表可以,有外键的表就算存在也不会影响,不过如果是建完表后,再用改系统表的方法,改完后再建立外键的表,长度还是要和原来的表一样,这点我感到疑惑