2014-08-28 20 views
1
CREATE PROCEDURE filepath.foo.Customer_Cork 
AS 
BEGIN 
    SELECT * 
    FROM CUSTOMER 
    WHERE COUNTY = 'Cork'; 
END; 

我有上面的代碼。 AS究竟在做什麼?SQL:在創建過程的上下文中,「AS」做了什麼?

另外,我的縮進/格式/分號如何放置?我不熟悉SQL,所以我會很感激任何使我的代碼更好的技巧。

+3

據我所知,它只是一個任意的標記,表示存儲過程定義的開始。你可以在你的名字和定義之間定義參數,'AS'只是說,「我之後的一切都是實際定義的一部分。」 – 2014-08-28 18:56:07

+0

哪個數據庫? – Jens 2014-08-28 18:56:12

+1

每個語句之後都有分號(如果你想讓我快樂,那就是)。所以你可以在''Cork''後面有一個';'你也應該習慣於明確地將模式放在你的表中,所以'foo.CUSTOMER'我發現總是別名表並且總是別名列是有幫助的。 slan – billinkc 2014-08-28 19:01:45

回答

1

(這裏定義的輸入參數)與所述主體(在其中定義的邏輯)的存儲過程的它被用作報頭之間的分隔符。你也可以把它作爲邏輯的起點,也就是說,在AS之後,其他的東西都會包含你存儲過程的邏輯。

您的縮進很好。所以沒有問題。

在一個側面說明:

SQL曾一度被稱爲 「Structured English Query Language」。因此,語言作者可能會嘗試使用相關的詞語來幫助我們識別分隔符。 :)

1

簡而言之,AS將頭和參數列表從過程的主體中分離出來。

CREATE PROCEDURE filepath.foo.Customer_Cork 
    --(empty) parameter list 
AS --body starts here 
BEGIN 
    SELECT * 
    FROM CUSTOMER 
    WHERE COUNTY = 'Cork' 
END; 

縮進/格式化確實是個人風格的問題,但是你對我看起來相當不錯。

1

它用於申報包機構。 在包頭中定義了IN或OUT參數之後,您現在聲明後面的主體定義爲AS

此外,您的縮進和分號使用很好。最好縮進每個級別(如您所做的那樣),並且所有BEGIN ... END塊都以;終止。

相關問題