在数据库中 执行下列sql语句是没问题的ALTER TABLE Diary ADD tempid int
go
UPDATE Diary set tempid = DiaryId
go
ALTER TABLE Diary DROP COLUMN DiaryId但是如果把这个sql语句用ADO.net执行就会出错求解
go
UPDATE Diary set tempid = DiaryId
go
ALTER TABLE Diary DROP COLUMN DiaryId但是如果把这个sql语句用ADO.net执行就会出错求解
你在ADO.NET里执行带GO的语句,好比把用GO分割的多个语句单独执行,上述语句2个GO,那么相当于让ADO.NET单独顺次执行了三个独立的语句,如果觉得麻烦,而三个语句合并到一起执行也不会出错(一般不会出错),那为什么要分开呢?
但我目前就想用一个SqlCommand ,执行分成三个SqlCommand 执行时没问题的 我试过了 希望高手指点
go 执行
UPDATE Diary set tempid = DiaryId
go 执行
ALTER TABLE Diary DROP COLUMN DiaryId
go 执行毕竟是个文本,ado.net不可能附带那么大的解析功能
但是用cmd.ExecuteNonQuery()就是不行
两种方案解决:
1、将你要执行的sql批处理写成存储过程,用ADO.NET调用这个存储过程。
2、用ADO.NET的事务来分步执行你要执行的SQL操作。