修改表的字段长度时提示正用于复制如何解决?
我把UserInfo表的一个类型为nvarchar(100)的字段改为nvarchar(30)的字段类型时提示以下信息:
-----------
“UserInfo”表
- 无法修改表。
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]无法 除去 表 'dbo.UserInfo ',因为它正用于复制。
-----------
我在CSDN上找到的方法试了还是不行,请问应该如何解决?
http://community.csdn.net/Expert/topic/5106/5106265.xml?temp=.164654
------解决方案--------------------说明这个表正在被使用,停止其他对这个表的操作再修改
------解决方案--------------------再说本人认为没必要改下一般都是不够才改大的,定义大一点没什么影响呀
------解决方案--------------------sp_repladdcolumn @source_object = 'UserInfo ',@column = 'colNametmp ',@typetext= 'nvarchar(30) NULL '
GO
update UserInfo set colNametmp=colName
GO
sp_repldropcolumn @source_object = 'UserInfo ',,@column = 'colName '
GO
sp_repladdcolumn @source_object = 'UserInfo ',@column = 'colName ',@typetext= 'nvarchar(30) NULL '
GO
update UserInfo set colName=colNametmp
GO
sp_repldropcolumn @source_object = 'UserInfo ',,@column = 'colNametmp '
GO
--colName 需要修改的字段
--colNametmp 临时字段,用来中转数据
我是这样做的,不知道还有没有更好的办法
------解决方案--------------------你要把colName换成你要改的字段名字才行
sp_repldropcolumn @source_object = 'UserInfo ',,@column = 'colName '
中间多了一个豆号
sp_repldropcolumn @source_object = 'UserInfo ',@column = 'colName '
最后那句也是
------解决方案--------------------先不要对这个表进行复制!
------解决方案--------------------up
------解决方案--------------------建完数据库后完全可以修改表结构字段类型