zoey的专栏

点点滴滴。。。

SQL 中GO、EXEC、ON

1.GO:

(1)作用:用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。
(2)语法:GO
(3)注释:GO不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。
SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。 
GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。
GO 是一个不需权限的实用工具命令。可以由任何用户执行。
(4)示例:下面的示例创建两个批处理。第一个批处理只包含一条 USE pubs 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用 GO 命令来做到。
USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT(*)
FROM authors
PRINT 'The number of authors as of ' +
      CAST(GETDATE() AS char(20)) + ' is ' +
      CAST(@NmbrAuthors AS char (10))
GO

2.EXECUTE

(1)作用:执行标量值的用户定义函数、系统过程、用户定义存储过程或扩展存储过程。同时支持 Transact-SQL 批处理内的字符串的执行,exec 就是execute的缩写。 
(2)语法:若要唤醒调用函数,请使用 EXECUTE stored_procedure 中描述的。
执行存储过程:
[ [ EXEC [ UTE ] ]
    { 
        [ @return_status = ]
            { procedure_name [ ;number ] | @procedure_name_var
    } 
    [ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] ]
        [ ,...n ] 
[ WITH RECOMPILE ] 
执行字符串:
EXEC [ UTE ] ( { @string_variable | [ N ] 'tsql_string' } [ + ...n ] )
(3)权限:存储过程的 EXECUTE 权限默认给该存储过程的所有者,该所有者可以将此权限转让给其他用户。当遇到 EXECUTE 语句时,即使 EXECUTE 语句是在存储过程中,也会检查在 EXECUTE 字符串内使用该语句的权限。当运行一个执行字符串的存储过程时,系统会在执行该过程的用户环境中,而不是在创建该过程的用户环境中检查权限。但是,如果某用户拥有两个存储过程,并且第一个过程调用第二个过程,则在第二个过程中不进行 EXECUTE 权限检查。
(4)示例:使用 EXECUTE 传递单个参数
showind 存储过程需要参数 (@tabname),它是一个表的名称。下面这个例子执行 showind 存储过程,以 titles 为参数值。
EXEC showind titles

3.ON

(1)作用:用来指定存储表的文件组。
(2)语法:在create table的语法中有这样一句可选语法项目:
[ on { filegroup | default } ]
(3)注意:
如果指定 filegroup,则表将存储在指定的文件组中。数据库中必须存在该文件组。如果指定 default,或者根本未指定 on 参数,则表存储在默认文件组中。
(default 并不是关键字。default 是默认文件组的标识符并需对其进行定界,如 on "default"、on [default]。)

on [primary]是表示表是建立在主文件组上。primary表示主文件组。如果没有指定默认文件组,则主文件组是默认文件组,on [primary]也可以省略掉了。

4.参考:

http://blog.sina.com.cn/s/blog_69e6c0030101agjg.html

阅读更多
文章标签: GO EXEC ON
个人分类: SQL
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

SQL 中GO、EXEC、ON

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭