• 相关软件
    >SET NOEXEC 创建者:webmaster 更新时间:2006-02-16 15:51

    编译每个查询但不执行查询。



    语法


    SET NOEXEC { ON | OFF }



    注释


    当 SET NOEXEC 为 ON 时,Microsoft® SQL Server™ 编译每个批处理 Transact-SQL 语句但并不执行它们。当 SET NOEXEC 为 OFF 时,所有批处理将在编译后执行。



    在 SQL Server 中,语句的执行包括两个阶段:编译和执行。该设置可用于让 SQL Server 在执行 Transact-SQL 代码时,验证代码中的语法和对象名。它也可以用于调试通常是较大的批处理语句一部分的语句。



    SET NOEXEC 设置是在执行或运行时设置,而不是在分析时设置。



    权限


    SET NOEXEC 权限默认授予所有用户。



    示例


    下例在有效查询、含有无效对象名的查询以及含有不正确语法的查询中使用 NOEXEC。



    USE pubs
    GO
    PRINT 'Valid query'
    GO
    -- SET NOEXEC to ON.
    SET NOEXEC ON
    GO
    -- Inner join.
    SELECT a.au_lname, a.au_fname, t.title
    FROM authors a INNER JOIN titleauthor ta
      ON a.au_id = ta.au_id INNER JOIN titles t
      ON ta.title_id = t.title_id
    GO
    -- SET NOEXEC to OFF.
    SET NOEXEC OFF
    GO
    PRINT 'Invalid object name'
    GO
    -- SET NOEXEC to ON.
    SET NOEXEC ON
    GO
    -- Function name used is a reserved keyword.

    USE pubs
    GO
    CREATE FUNCTION values (@storeid varchar(30))
    RETURNS TABLE
    AS
    RETURN (SELECT title, qty
      FROM sales s, titles t
      WHERE s.stor_id = @storeid and
      t.title_id = s.title_id)
    -- SET NOEXEC to OFF.
    SET NOEXEC OFF
    GO
    PRINT 'Invalid syntax'
    GO
    -- SET NOEXEC to ON.
    SET NOEXEC ON
    GO
    -- Built-in function incorrectly invoked
    SELECT *
    FROM fn_helpcollations()
    -- Reset SET NOEXEC to OFF.
    SET NOEXEC OFF
    GO
    相关文章
    本页查看次数: