local_variable DECLARE @local_variable - 北京怡康軟件科技有限公司 資源網(wǎng) "/>

亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關軟件
    >DECLARE @local_variable 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    在批處理或過程的正文中用 DECLARE 語句聲明變量,并用 SET 或 SELECT 語句給其指派值。游標變量可通過該語句聲明,并且可用在其它與游標相關的語句中。所有變量在聲明后均初始化為 NULL。



    語法


    DECLARE

        {{ @local_variable data_type }

            | { @cursor_variable_name CURSOR }

            | { table_type_definition }

        } [ ,...n]



    < table_type_definition > ::=

        TABLE ( { < column_definition > | < table_constraint > } [ ,...]

                )



    < column_definition > ::=

        column_name scalar_data_type

        [ COLLATE collation_ name ]

        [ [ DEFAULT constant_expression ] | IDENTITY [ ( seed , increment ) ] ]

        [ ROWGUIDCOL ]

        [ < column_constraint > ]



    < column_constraint > ::=

        { [ NULL | NOT NULL ]

        | [ PRIMARY KEY | UNIQUE ]

        | CHECK ( logical_expression )

        }



    < table_constraint > ::=

        { { PRIMARY KEY | UNIQUE } ( column_name [ ,...] )

        | CHECK ( search_condition )

        }



    參數(shù)


    @local_variable



    是變量的名稱。變量名必須以 at 符 (@) 開頭。局部變量名必須符合標識符規(guī)則。有關更多信息,請參見使用標識符。



    data_type



    是任何由系統(tǒng)提供的或用戶定義的數(shù)據(jù)類型。變量不能是 textntextimage 數(shù)據(jù)類型。有關系統(tǒng)數(shù)據(jù)類型的更多信息,請參見數(shù)據(jù)類型。有關用戶定義數(shù)據(jù)類型的更多信息,請參見 sp_addtype。



    @cursor_variable_name



    是游標變量的名稱。游標變量名必須以 at 符 (@) 開頭并遵從標識符規(guī)則。



    CURSOR



    指定變量是局部游標變量。



    table_type_definition



    定義表數(shù)據(jù)類型。表聲明包括列定義、名稱、數(shù)據(jù)類型和約束。允許的約束類型只包括 PRIMARY KEY、UNIQUE KEY、NULL 和 CHECK。



    table_type_definition 是在 CREATE TABLE 中用于定義表的信息子集。元素和基本定義都包含在該定義中;有關更多信息,請參見 CREATE TABLE。



    n



    是表示可以指定多個變量并對變量賦值的占位符。當聲明表變量時,表變量必須是 DECLARE 語句中正在聲明的唯一變量。



    column_name



    是表中的列名。



    scalar_data_type



    指定列是標量數(shù)據(jù)類型。



    [COLLATE collation_name]



    指定列的排序規(guī)則。collation_name 可以是 Windows 排序規(guī)則名稱或 SQL 排序規(guī)則名稱,且只適用于 charvarchar、text、ncharnvarcharntext 數(shù)據(jù)類型的列。如果沒有指定,則可給列指定用戶定義數(shù)據(jù)類型的排序規(guī)則(如果列為用戶定義數(shù)據(jù)類型)或數(shù)據(jù)庫的默認排序規(guī)則。



    有關 Windows 和 SQL 排序規(guī)則名稱的更多信息,請參見 COLLATE。



    DEFAULT



    如果在插入過程中未顯式提供值,則指定為列提供的值。DEFAULT 定義可適用于除定義為 timestamp 或帶 IDENTITY 屬性的列以外的任何列。除去表時,將刪除 DEFAULT 定義。只有常量值(如字符串)、系統(tǒng)函數(shù)(如 SYSTEM_USER())或 NULL 可用作默認參數(shù)。為保持與 SQL Server 早期版本的兼容,可以給 DEFAULT 指派約束名。



    constant_expression



    是用作列的默認值的常量、NULL 或系統(tǒng)函數(shù)。



    IDENTITY



    表示新列是標識列。在表中添加新行時,SQL Server 為列提供一個唯一的增量值。標識列通常與 PRIMARY KEY 約束一起用作表的唯一行標識符??梢詫?IDENTITY 屬性指派給 tinyint、smallintint、decimal(p,0)numeric(p,0) 列。對于每個表只能創(chuàng)建一個標識列。不能對標識列使用綁定默認值和 DEFAULT 約束。必須同時指定種子和增量,或者都不指定。如果二者都未指定,則取默認值 (1,1)。



    seed



    是裝入表的第一行所使用的值。



    increment



    是添加到以前裝載的列標識值的增量值。



    ROWGUIDCOL



    表示新列是行的全局唯一標識符列。對于每個表只能指派一個 uniqueidentifier 列作為 ROWGUIDCOL 列。ROWGUIDCOL 屬性只能指派給 uniqueidentifier 列。



    NULL | NOT NULL



    是決定在列中是否允許空值的關鍵字。



    PRIMARY KEY



    是通過唯一索引對給定的一列或多列強制實體完整性的約束。對于每個表只能創(chuàng)建一個 PRIMARY KEY 約束。



    UNIQUE



    是通過唯一索引為給定的一列或多列提供實體完整性的約束。一個表可以有多個 UNIQUE 約束。



    CHECK



    是通過限制可輸入到一列或多列中的可能值強制域完整性的約束。



    logical_expression



    是返回 TRUE 或 FALSE 的邏輯表達式。



    注釋


    變量常用在批處理或過程中,作為 WHILE、LOOP 或 IF...ELSE 塊的計數(shù)器。



    變量只能用在表達式中,不能代替對象名或關鍵字。若要構造動態(tài) SQL 語句,請使用 EXECUTE。



    局部變量的作用域是在其中聲明局部變量的批處理、存儲過程或語句塊。有關在語句塊內(nèi)使用局部變量的更多信息,請參見使用 BEGIN...END。



    當前給其指派有游標的游標變量可在下列語句中作為源引用:


    • CLOSE 語句。



    • DEALLOCATE 語句。



    • FETCH 語句。



    • OPEN 語句。



    • 定位 DELETE 或 UPDATE 語句。



    • SET CURSOR 變量語句(在右側)。



    在所有這些語句中,如果引用的游標變量存在,但是不具有當前分配給它的游標,那么 Microsoft® SQL Server™ 會產(chǎn)生錯誤。如果引用的游標變量不存在,SQL Server 將產(chǎn)生對另外一類未聲明變量所產(chǎn)生的相同錯誤。



    游標變量:


    • 可以是游標類型或另一個游標變量的目標。有關更多信息,請參見 SET @local_variable。



    • 可以在 EXECUTE 語句中作為輸出游標參數(shù)的目標引用(如果當前沒有給游標變量指派游標)。



    • 應被看作是指向游標的指針。有關游標變量的更多信息,請參見 Transact-SQL 游標。



    示例


    A. 使用 DECLARE


    下例使用名為 @find 的局部變量檢索所有姓以 Ring 開頭的作者信息。



    USE pubs
    DECLARE @find varchar(30)
    SET @find = 'Ring%'
    SELECT au_lname, au_fname, phone
    FROM authors
    WHERE au_lname LIKE @find


    下面是結果集:



    au_lname                               au_fname             phone        
    -------------------------------------- -------------------- ------------
    Ringer                       Anne           801 826-0752
    Ringer                       Albert           801 826-0752

    (2 row(s) affected)


    B. 在 DECLARE 中使用兩個變量


    下例從 Binnet & Hardley (pub_id = 0877) 的雇員中檢索從 1993 年 1 月 1 日起所雇傭的雇員名稱。



    USE pubs
    SET NOCOUNT ON
    GO
    DECLARE @pub_id char(4), @hire_date datetime
    SET @pub_id = '0877'
    SET @hire_date = '1/01/93'
    -- Here is the SELECT statement syntax to assign values to two local
    -- variables.
    -- SELECT @pub_id = '0877', @hire_date = '1/01/93'
    SET NOCOUNT OFF
    SELECT fname, lname
    FROM employee
    WHERE pub_id = @pub_id and hire_date >= @hire_date


    下面是結果集:



    fname                lname                          
    -------------------- ------------------------------
    Anabela         Domingues              
    Paul           Henriot                

    (2 row(s) affected)
    相關文章
    本頁查看次數(shù):