如何使用ExecuteNonQuery创建多个存储过程?

时间:2010-10-15 09:36:38

标签: stored-procedures ado.net

情况是:

我想创建两个存储过程:

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();

2 个答案:

答案 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语句组合使用。

相关问题