我把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

解决方案 »

  1.   

    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 临时字段,用来中转数据我是这样做的,不知道还有没有更好的办法
      

  2.   

    To zjcxc(邹建):
    请问您说的方法应该怎么作呢?
    我把SQL SERVER关掉重装开还是一样不行修改数据表结构。郁闷了。其它几位的方法我试了都不行啊。
    huangjing81(油果子) 提供给我的方法我运行后提示好多错误。。
      

  3.   

    你要把colName换成你要改的字段名字才行
    sp_repldropcolumn @source_object ='UserInfo',,@column ='colName'
    中间多了一个豆号
    sp_repldropcolumn @source_object ='UserInfo',@column ='colName'
    最后那句也是