情况是:
我想创建两个存储过程:
query1 = CREATE PROCEDURE MyProc1 AS SELECT * FROM TEST1;
和
query2 = CREATE PROCEDURE MyProc2 AS SELECT * FROM TEST2;
我可以使用
来做command.CommandText = query1;
command.ExecuteNonQuery();
command.CommandTest = query2;
command.ExecuteNonQuery();
是否可以在一个ExecuteNonQuery()中创建这两个过程,如:
command.CommandText = query1 + query2;
command.ExecuteNonQuery();
答案 0 :(得分:2)
有一种解决方法,您可以使用EXEC语句包装每个过程
e.g。
EXEC('CREATE PROCEDURE MyProc1 AS SELECT * FROM TEST1;')
EXEC('CREATE PROCEDURE MyProc2 AS SELECT * FROM TEST2;')
EXEC('CREATE PROCEDURE MyProc3 AS SELECT ''hello'';')
注意:请确保在过程文本中使用两个单引号'
替换每个单引号''
(MyProc3中的示例)
答案 1 :(得分:1)
不,一次调用ExecuteNonQuery中的所有内容都作为单个批处理执行。引用CREATE PROCEDURE:
CREATE PROCEDURE语句不能与单个批处理中的其他Transact-SQL语句组合使用。