使用Begin和End在SQL Server 2008中创建存储过程

时间:2017-03-28 03:38:24

标签: sql sql-server

示例:

ALTER PROCEDURE [dbo].[SampleTable]
AS 
BEGIN
    BEGIN
    WITH 'Test' AS
    (
        SELECT * FROM dario1
        UNION ALL
        SELECT * FROM dario2
        UNION ALL
        SELECT * FROM dario3
    )
    END 

    IF select Column1 = 1 FROM Test
    BEGIN
      --another commands.. etc..
    END

    IF select Column1 = 2 FROM Test
    BEGIN
         --another commands.. etc..
    END

    IF select Column1 = 3 FROM Test
    BEGIN
         --another commands.. etc..
    END
END

请不要理会我的代码,这只是一个样本。

我的问题是:BEGINEND有助于优化内存消耗吗?即使我有3张桌子,我的记录大约有数百万张?

我仍然对使用BEGINEND感到困惑。

任何答案都将受到赞赏.. :)

3 个答案:

答案 0 :(得分:3)

BEGIN和END 类似于C#({})中的开括号和右括号,用于表示逻辑代码块。它不会影响内存消耗。

答案 1 :(得分:0)

不,根据MSDNBEGINEND是控制流语言关键字。这些仅用于指示逻辑代码块,而不是内存消耗模型。同样,这些也不会影响交易的原子性。

答案 2 :(得分:0)

不,BEGIN和END与内存消耗无关。它只是一个用于对不同SQL语句进行分组的逻辑块