• SQL SERVER – Difference Between EXEC and EXECUTE vs EXEC() – Use EXEC/EXECUTE for SP always


    http://blog.sqlauthority.com/2007/09/13/sql-server-difference-between-exec-and-execute-vs-exec-use-execexecute-for-sp-always/

    SQL SERVER – Difference Between EXEC and EXECUTE vs EXEC() – Use EXEC/EXECUTE for SP always

    What is the difference between EXEC and EXECUTE?

    They are the same. Both of them executes stored procedure when called as
    EXEC sp_help
    GO
    EXECUTE sp_help
    GO

    I have seen enough times developer getting confused between EXEC and EXEC(). EXEC command executes stored procedure where as EXEC() function takes dynamic string as input and executes them.
    EXEC('EXEC sp_help')
    GO

    Another common mistakes I have seen is not using EXEC before stored procedure. It is always good practice to use EXEC before stored procedure name even though SQL Server assumes any command as stored procedure when it does not recognize the first statement. Developer learns while working with Query Editor in SSMS that EXEC is not necessary before running any stored procedure. However, consider following two test and you will see why EXEC or EXECUTE is necessary in many cases and good practice to use it.

    TEST 1 : No Errors
    USE AdventureWorks;
    GO
    ----Try this first independently this will throw an error
    sp_helptext 'dbo.uspPrintError'
    GO
    ----Try this second independently this will work fine
    EXEC sp_helptext 'dbo.uspPrintError'
    GO

    TEST 2 : EXEC prevents error
    USE AdventureWorks;
    GO
    ----Try this first independently this will throw an error
    SELECT *
    FROM Sales.Individual
    sp_helptext 'dbo.uspPrintError'
    GO
    ----Try this second independently this will work fine
    SELECT *
    FROM Sales.Individual
    EXEC sp_helptext 'dbo.uspPrintError'
    GO

    Test 2 indicates that using EXEC or EXECUTE is good practice as it always executes the stored procedure, when not using EXEC can confuse SQL SERVER to misinterpret commands and may create errors.

    做个快乐的自己。
  • 相关阅读:
    Unity接入九游SDK学习与踩坑
    Linux系统下实现Tomcat的安装和项目的部署:
    mac查看端口占用情况并结束进程
    BootStrap
    ES6
    JQuery
    CSS 、JavaScript
    HTML
    XML
    数据库连接池&DBUtils
  • 原文地址:https://www.cnblogs.com/Jessy/p/2119594.html
Copyright © 2020-2023  润新知