5 个解决方案
#1
其实就是用sql语句alter table的某列。如果里面有数据的话,需要将数据清空,再修改类型。
#2
在程序中用数据命令是可以的,前提是要符合他的操作要求,你可以将里面的数据全清成空,再修改他的类型,然后再赋值回去.
#3
主要是修改的列有默认值约束
#5
string ss = "declare @name varchar(50)" +
" select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault" +
" where a.id = object_id('Project')" +
" and a.name ='IsSigned'" +
" exec('alter table Project drop constraint' + @name)" +
" exec('alter table Project drop column IsSigned')";
这个也不行,显示错误:
'constraintDF__Project__IsSigne__6ABAD62E' 不是约束。
未能除去约束。请参阅前面的错误信息。
" select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault" +
" where a.id = object_id('Project')" +
" and a.name ='IsSigned'" +
" exec('alter table Project drop constraint' + @name)" +
" exec('alter table Project drop column IsSigned')";
这个也不行,显示错误:
'constraintDF__Project__IsSigne__6ABAD62E' 不是约束。
未能除去约束。请参阅前面的错误信息。
#1
其实就是用sql语句alter table的某列。如果里面有数据的话,需要将数据清空,再修改类型。
#2
在程序中用数据命令是可以的,前提是要符合他的操作要求,你可以将里面的数据全清成空,再修改他的类型,然后再赋值回去.
#3
主要是修改的列有默认值约束
#4
http://database.51cto.com/art/201009/228144.htm。你可以在数据库存储过程中封装好,然后C#中调用一下就o了。
#5
string ss = "declare @name varchar(50)" +
" select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault" +
" where a.id = object_id('Project')" +
" and a.name ='IsSigned'" +
" exec('alter table Project drop constraint' + @name)" +
" exec('alter table Project drop column IsSigned')";
这个也不行,显示错误:
'constraintDF__Project__IsSigne__6ABAD62E' 不是约束。
未能除去约束。请参阅前面的错误信息。
" select @name =b.name from sysobjects b join syscolumns a on b.id = a.cdefault" +
" where a.id = object_id('Project')" +
" and a.name ='IsSigned'" +
" exec('alter table Project drop constraint' + @name)" +
" exec('alter table Project drop column IsSigned')";
这个也不行,显示错误:
'constraintDF__Project__IsSigne__6ABAD62E' 不是约束。
未能除去约束。请参阅前面的错误信息。