Nev*_*ing 7 sql-server scripting
我找不到创建时命令必须是查询批处理中的第一条语句的对象类型列表。到目前为止,我发现 function/stored_procedure/view 必须是第一个。
有谁知道为什么需要这样做?我确定有一个很好的理由,但它逃脱了我。想到存储过程的唯一原因是过程结束后对代码的奇怪解释。当 SP 被调用时,SQL 服务器仍然执行代码,如果有更多的 CREATE STATEMENTS 结果会一团糟。
背景:我正在尝试创建创建/删除/禁用/启用等脚本,并且需要知道在执行之前将什么放入动态 exec() 中。是的,我可能会将所有语句都包装在 exec() 中,但是我不会学到任何东西。
boj*_*jan 10
来自http://msdn.microsoft.com/en-us/library/ms175502(v=sql.105).aspx
批处理使用规则
以下规则适用于使用批处理:
- CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE SCHEMA、CREATE TRIGGER 和 CREATE VIEW 语句不能与批处理中的其他语句组合。CREATE 语句必须启动批处理。该批处理中的所有其他语句将被解释为第一个 CREATE 语句定义的一部分。
- 不能更改表,然后在同一批次中引用新列。
- 如果 EXECUTE 语句是批处理中的第一条语句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。
归档时间: |
|
查看次数: |
16327 次 |
最近记录: |