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

  • 相關(guān)軟件
    >Transact-SQL 系統(tǒng)變量 創(chuàng)建者:webmaster 更新時間:2010-06-26 21:22

    @@CONNECTIONS


    返回自上次啟動 Microsoft? SQL Server? 以來連接或試圖連接的次數(shù)。


    語法

    @@CONNECTIONS


    返回類型

    integer


    注釋

    連接與用戶不同。例如,應(yīng)用程序可以打開多個與 SQL Server 的連接,而不需要用戶監(jiān)視這些連接。


    若要顯示一個包含幾個 SQL Server 統(tǒng)計信息的報表,包括試圖連接統(tǒng)計信息,請運(yùn)行 sp_monitor。


    示例

    下面的示例顯示了到當(dāng)前日期和時間為止試圖登錄的次數(shù)。

    SELECT GETDATE() AS 'Today's Date and Time', 
      @@CONNECTIONS AS 'Login Attempts'

    下面是結(jié)果集:

    Today's Date and Time              Login Attempts
    ---------------------------     ---------------
    1998-04-09 14:28:46.940         18

    ?

    @@CPU_BUSY

    返回自上次啟動 Microsoft? SQL Server? 以來 CPU 的工作時間,單位為毫秒(基于系統(tǒng)計時器的分辨率)。

    語法

    @@CPU_BUSY

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,包括 CPU 活動統(tǒng)計信息,請運(yùn)行 sp_monitor。

    示例

    下面的示例顯示了到當(dāng)前日期和時間為止 SQL Server CPU 的活動。

    SELECT @@CPU_BUSY AS 'CPU ms', GETDATE() AS 'As of'

    下面是結(jié)果集:

    CPU ms               As of
    -----------------   ---------------------------
    20             1998-04-18 14:43:08.180
    ?
    ?

    @@CURSOR_ROWS

    返回連接上最后打開的游標(biāo)中當(dāng)前存在的合格行的數(shù)量。為提高性能,Microsoft? SQL Server? 可以異步填充大鍵集和靜態(tài)游標(biāo)。可調(diào)用 @@CURSOR_ROWS,以確定當(dāng)它被調(diào)用時,符合游標(biāo)的行的數(shù)目被進(jìn)行了檢索。

    返回值描述
    -m游標(biāo)被異步填充。返回值 (-m) 是鍵集中當(dāng)前的行數(shù)。
    -1游標(biāo)為動態(tài)。因為動態(tài)游標(biāo)可反映所有更改,所以符合游標(biāo)的行數(shù)不斷變化。因而永遠(yuǎn)不能確定地說所有符合條件的行均已檢索到。
    0沒有被打開的游標(biāo),沒有符合最后打開的游標(biāo)的行,或最后打開的游標(biāo)已被關(guān)閉或被釋放。
    n游標(biāo)已完全填充。返回值 (n) 是在游標(biāo)中的總行數(shù)。

    語法

    @@CURSOR_ROWS

    返回類型

    integer

    注釋

    若最后打開的游標(biāo)是異步打開的,則 @@CURSOR_ROWS 返回的值是負(fù)數(shù)。若 sp_configure cursor threshold 的值大于0,則鍵集驅(qū)動程序或靜態(tài)游標(biāo)被異步打開,且游標(biāo)結(jié)果集中的行數(shù)大于游標(biāo)閾值。

    示例

    下面的示例聲明了一個游標(biāo),并且用 SELECT 顯示 @@CURSOR_ROWS 的值。在游標(biāo)打開前,設(shè)置值為 0,值 -1 則表示游標(biāo)鍵集被異步填充。

    SELECT @@CURSOR_ROWS
    DECLARE authors_cursor CURSOR FOR
    SELECT au_lname FROM authors
    OPEN authors_cursor
    FETCH NEXT FROM authors_cursor
    SELECT @@CURSOR_ROWS
    CLOSE authors_cursor
    DEALLOCATE authors_cursor

    -----------
    0      

    (1 row(s) affected)

    au_lname                      
    ----------------------------------------
    White                        

    (1 row(s) affected)

           
    -----------
    -1      

    (1 row(s) affected)
    ?
    ?

    @@DATEFIRST

    返回 SET DATEFIRST 參數(shù)的當(dāng)前值,SET DATEFIRST 參數(shù)指明所規(guī)定的每周第一天:1 對應(yīng)星期一,2 對應(yīng)星期二,依次類推,用 7 對應(yīng)星期日。

    語法

    @@DATEFIRST

    返回類型

    tinyint

    注釋

    美國英語中默認(rèn) 7 對應(yīng)星期日。

    示例

    下面的示例將每周第一天設(shè)為 5 (星期五),并假定當(dāng)日是星期六。SELECT 語句返回 DATEFIRST 值和當(dāng)日是此周的第幾天。

    SET DATEFIRST 5
    SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'

    下面是結(jié)果集。從星期五算起,今天(星期六)是第二天。

    1st Day           Today
    ---------------- --------------
    5           2
    ?
    ?
    ?

    @@DBTS

    為當(dāng)前數(shù)據(jù)庫返回當(dāng)前 timestamp 數(shù)據(jù)類型的值。這一 timestamp 值保證在數(shù)據(jù)庫中是唯一的。

    語法

    @@DBTS

    返回類型

    varbinary

    注釋

    @@DBTS 返回當(dāng)前數(shù)據(jù)庫最后所使用的時間戳值。當(dāng)帶有 timestamp 列的一行被插入或更新時,會產(chǎn)生一個新的時間戳值。

    示例

    下面的示例從 pubs 數(shù)據(jù)庫返回當(dāng)前的 timestamp 值。

    USE pubs
    SELECT @@DBTS
    ?
    ?
    ?

    @@ERROR

    返回最后執(zhí)行的 Transact-SQL 語句的錯誤代碼。

    語法

    @@ERROR

    返回類型

    integer

    注釋

    當(dāng) Microsoft? SQL Server? 完成 Transact-SQL 語句的執(zhí)行時,如果語句執(zhí)行成功,則 @@ERROR 設(shè)置為 0。若出現(xiàn)一個錯誤,則返回一條錯誤信息。@@ERROR 返回此錯誤信息代碼,直到另一條 Transact-SQL 語句被執(zhí)行。您可以在 sysmessages 系統(tǒng)表中查看與 @@ERROR 錯誤代碼相關(guān)的文本信息。

    由于 @@ERROR 在每一條語句執(zhí)行后被清除并且重置,應(yīng)在語句驗證后立即檢查它,或?qū)⑵浔4娴揭粋€局部變量中以備事后查看。

    示例
    A.用 @@ERROR 檢測一個特定錯誤

    下面的示例用 @@ERROR 在一個 UPDATE 語句中檢測限制檢查沖突(錯誤 #547)。

    USE pubs
    GO
    UPDATE authors SET au_id = '172 32 1176'
    WHERE au_id = "172-32-1176"

    IF @@ERROR = 547
      print "A check constraint violation occurred"
    B.用 @@ERROR 有條件地退出一個過程

    在此示例中,IF...ELSE 語句在存儲過程中的 INSERT 語句后檢測 @@ERROR。@@ERROR 變量的值將決定傳給調(diào)用程序的返回值,以指示此過程的成功與失敗。

    USE pubs
    GO

    -- Create the procedure.
    CREATE PROCEDURE add_author
    @au_id varchar(11),@au_lname varchar(40),
    @au_fname varchar(20),@phone char(12),
    @address varchar(40) = NULL,@city varchar(20) = NULL,
    @state char(2) = NULL,@zip char(5) = NULL,
    @contract bit = NULL
    AS

    -- Execute the INSERT statement.
    INSERT INTO authors
    (au_id, au_lname, au_fname, phone, address,
    city, state, zip, contract) values
    (@au_id,@au_lname,@au_fname,@phone,@address,
    @city,@state,@zip,@contract)

    -- Test the error value.
    IF @@ERROR <> 0
    BEGIN
      -- Return 99 to the calling program to indicate failure.
      PRINT "An error occurred loading the new author information"
      RETURN(99)
    END
    ELSE
    BEGIN
      -- Return 0 to the calling program to indicate success.
      PRINT "The new author information has been loaded"
      RETURN(0)
    END
    GO
    C.用 @@ERROR 檢測幾條語句的成功

    下面的示例取決于 INSERT 和 DELETE 語句的成功操作。局部變量在兩條語句后均被設(shè)置為 @@ERROR 的值,并且用于此操作的共享錯誤處理例程中。

    USE pubs
    GO
    DECLARE @del_error int, @ins_error int
    -- Start a transaction.
    BEGIN TRAN

    -- Execute the DELETE statement.
    DELETE authors
    WHERE au_id = '409-56-7088'

    -- Set a variable to the error value for
    -- the DELETE statement.
    SELECT @del_error = @@ERROR

    -- Execute the INSERT statement.
    INSERT authors
      VALUES('409-56-7008', 'Bennet', 'Abraham', '415 658-9932',
      '6223 Bateman St.', 'Berkeley', 'CA', '94705', 1)
    -- Set a variable to the error value for
    -- the INSERT statement.
    SELECT @ins_error = @@ERROR

    -- Test the error values.
    IF @del_error = 0 AND @ins_error = 0
    BEGIN
      -- Success. Commit the transaction.
      PRINT "The author information has been replaced"  
      COMMIT TRAN
    END
    ELSE
    BEGIN
      -- An error occurred. Indicate which operation(s) failed
      -- and roll back the transaction.
      IF @del_error <> 0
        PRINT "An error occurred during execution of the DELETE
        statement."

      IF @ins_error <> 0
        PRINT "An error occurred during execution of the INSERT
        statement."

      ROLLBACK TRAN
    END
    GO
    D. 與 @@ROWCOUNT 一同使用 @@ERROR

    下面的示例用 @@ERROR 和 @@ROWCOUNT 驗證一條 UPDATE 語句的操作。為任何可能出現(xiàn)的錯誤而檢驗 @@ERROR 的值,而用 @@ROWCOUNT 保證更新已成功應(yīng)用于表中的某行。

    USE pubs
    GO
    CREATE PROCEDURE change_publisher
    @title_id tid,
    @new_pub_id char(4)
    AS

    -- Declare variables used in error checking.
    DECLARE @error_var int, @rowcount_var int

    -- Execute the UPDATE statement.
    UPDATE titles SET pub_id = @new_pub_id
    WHERE title_id = @title_id

    -- Save the @@ERROR and @@ROWCOUNT values in local
    -- variables before they are cleared.
    SELECT @error_var = @@ERROR, @rowcount_var = @@ROWCOUNT

    -- Check for errors. If an invalid @new_pub_id was specified
    -- the UPDATE statement returns a foreign-key violation error #547.
    IF @error_var <> 0
    BEGIN
      IF @error_var = 547
      BEGIN
        PRINT "ERROR: Invalid ID specified for new publisher"
        RETURN(1)
      END
      ELSE
      BEGIN
        PRINT "ERROR: Unhandled error occurred"
        RETURN(2)
      END
    END

    -- Check the rowcount. @rowcount_var is set to 0
    -- if an invalid @title_id was specified.
    IF @rowcount_var = 0
    BEGIN
      PRINT "Warning: The title_id specified is not valid"
      RETURN(1)
    END
    ELSE
    BEGIN
      PRINT "The book has been updated with the new publisher"
      RETURN(0)
    END
    GO

    @@FETCH_STATUS

    返回被 FETCH 語句執(zhí)行的最后游標(biāo)的狀態(tài),而不是任何當(dāng)前被連接打開的游標(biāo)的狀態(tài)。

    返回值描述
    0FETCH 語句成功。
    -1FETCH 語句失敗或此行不在結(jié)果集中。
    -2被提取的行不存在。

    語法

    @@FETCH_STATUS

    返回類型

    integer

    注釋

    由于 @@FETCH_STATUS 對于在一個連接上的所有游標(biāo)是全局性的,要小心使用 @@FETCH_STATUS 。在執(zhí)行一條 FETCH 語句后,必須在對另一游標(biāo)執(zhí)行另一 FETCH 語句前測試 @@FETCH_STATUS 。在任何提取操作出現(xiàn)在此連接上前,@@FETCH_STATUS 的值沒有定義。

    例如,用戶從一個游標(biāo)執(zhí)行一條 FETCH 語句,然后調(diào)用一個存儲過程,此存儲過程打開并處理另一個游標(biāo)的結(jié)果。當(dāng)控制從被調(diào)用的存儲過程返回后,@@FETCH_STATUS 反映的是在存儲過程中執(zhí)行的最后的 FETCH 語句的結(jié)果,而不是在存儲過程被調(diào)用之前的 FETCH 語句的結(jié)果。

    示例

    下面的示例用 @@FETCH_STATUS 控制在一個 WHILE 循環(huán)中的游標(biāo)活動。

    DECLARE Employee_Cursor CURSOR FOR
    SELECT LastName, FirstName FROM Northwind.dbo.Employees
    OPEN Employee_Cursor
    FETCH NEXT FROM Employee_Cursor
    WHILE @@FETCH_STATUS = 0
    BEGIN
      FETCH NEXT FROM Employee_Cursor
    END
    CLOSE Employee_Cursor
    DEALLOCATE Employee_Cursor

    @@IDENTITY

    返回最后插入的標(biāo)識值。

    語法

    @@IDENTITY

    返回類型

    numeric

    注釋

    在一條 INSERT、SELECT INTO 或大容量復(fù)制語句完成后,@@IDENTITY 中包含此語句產(chǎn)生的最后的標(biāo)識值。若此語句沒有影響任何有標(biāo)識列的表,則 @@IDENTITY 返回 NULL。若插入了多個行,則會產(chǎn)生多個標(biāo)識值,@@IDENTITY 返回最后產(chǎn)生的標(biāo)識值。如果此語句激發(fā)一個或多個執(zhí)行產(chǎn)生標(biāo)識值的插入操作的觸發(fā)器,則語句執(zhí)行后立即調(diào)用 @@IDENTITY 將返回由觸發(fā)器產(chǎn)生的最后的標(biāo)識值。若 INSERT 或 SELECT INTO 語句失敗或大容量復(fù)制失敗,或事務(wù)被回滾,則 @@IDENTITY 值不會還原為以前的設(shè)置。

    在返回插入到表的 @@IDENTITY 列的最后一個值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函數(shù)類似。

    @@IDENTITY 和 SCOPE_IDENTITY 將返回在當(dāng)前會話的所有表中生成的最后一個標(biāo)識值。但是,SCOPE_IDENTITY 只在當(dāng)前作用域內(nèi)返回值,而 @@IDENTITY 不限于特定的作用域。

    IDENT_CURRENT 不受作用域和會話的限制,而受限于指定的表。IDENT_CURRENT 返回任何會話和任何作用域中為特定表生成的標(biāo)識值。有關(guān)更多信息,請參見 IDENT_CURRENT。

    示例

    下面的示例向帶有標(biāo)識列的表中插入一行,并用 @@IDENTITY 顯示在新行中使用的標(biāo)識值。

    INSERT INTO jobs (job_desc,min_lvl,max_lvl)
    VALUES ('Accountant',12,125)
    SELECT @@IDENTITY AS 'Identity'

    @@IDLE

    返回 Microsoft? SQL Server? 自上次啟動后閑置的時間,單位為毫秒(基于系統(tǒng)計時器的分辨率)。

    語法

    @@IDLE

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,可運(yùn)行 sp_monitor。

    示例

    下面的示例顯示 SQL Server 自啟動到當(dāng)前時間閑置的毫秒數(shù)。

    SELECT @@IDLE AS 'Idle ms', GETDATE() AS 'As of'

    下面是結(jié)果集:

    Idle Ms              As of
    -----------------   ---------------------------
    277593           1998-04-18 16:41:07.160

    @@IO_BUSY

    返回 Microsoft? SQL Server? 自上次啟動后用于執(zhí)行輸入和輸出操作的時間,單位為毫秒(基于系統(tǒng)計時器的分辨率)。

    語法

    @@IO_BUSY

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,可運(yùn)行 sp_monitor。

    示例

    下面的示例顯示 SQL Server 自啟動到目前已用于執(zhí)行輸入/輸出操作的毫秒數(shù)。

    SELECT @@IO_BUSY AS 'IO ms', GETDATE() AS 'As of'

    下面是結(jié)果集:

    IO ms                As of
    ------------------   -----------------------------
    31             1998-04-18 16:49:49.650

    @@LANGID

    返回當(dāng)前所使用語言的本地語言標(biāo)識符(ID)。

    語法

    @@LANGID

    返回類型

    smallint

    注釋

    若要查看語言設(shè)置信息(包括語言 ID 號),可不帶參數(shù)運(yùn)行 sp_helplanguage

    示例

    下面的示例將當(dāng)前會話的語言設(shè)置為意大利語 (Italian),然后用 @@LANGID 返回意大利語的 ID。

    SET LANGUAGE 'Italian'
    SELECT @@LANGID AS 'Language ID'

    下面是結(jié)果集:

    Language ID
    --------------------
    6

    @@LANGUAGE

    返回當(dāng)前使用的語言名。

    語法

    @@LANGUAGE

    返回類型

    nvarchar

    注釋

    若要查看語言設(shè)置信息(包括合法的官方語言名),可不帶參數(shù)運(yùn)行 sp_helplanguage。

    示例

    下面的示例返回當(dāng)前會話的語言。

    SELECT @@LANGUAGE AS 'Language Name'

    下面是結(jié)果集:

    Language Name
    -----------------------------
    us_english

    @@LOCK_TIMEOUT

    返回當(dāng)前會話的當(dāng)前鎖超時設(shè)置,單位為毫秒。

    語法

    @@LOCK_TIMEOUT

    返回類型

    integer

    注釋

    SET LOCK_TIMEOUT 允許應(yīng)用程序設(shè)置語句等待阻塞資源的最長時間。當(dāng)一條語句已等待超過 LOCK_TIMEOUT所設(shè)置的時間,則被鎖住的語句將自動取消,并給應(yīng)用程序返回一條錯誤信息。

    在一個連接的開始,@@LOCK_TIMEOUT 返回一個 –1值。

    示例

    下面的示例顯示當(dāng)一個 LOCK_TIMEOUT 值未被設(shè)置時的結(jié)果集。

    SELECT @@LOCK_TIMEOUT

    下面是結(jié)果集:

    ----------------
    -1

    下面的示例設(shè)置 LOCK_TIMEOUT 為 1800 毫秒,然后調(diào)用 @@LOCK_TIMEOUT。

    SET LOCK_TIMEOUT 1800
    SELECT @@LOCK_TIMEOUT

    下面是結(jié)果集:

    ------------------------------
    1800

    @@MAX_CONNECTIONS

    返回 Microsoft? SQL Server? 上允許的同時用戶連接的最大數(shù)。返回的數(shù)不必為當(dāng)前配置的數(shù)值。

    語法

    @@MAX_CONNECTIONS

    返回類型

    integer

    注釋

    實際允許的用戶連接數(shù)也依賴于所安裝 SQL Server 的版本以及應(yīng)用程序和硬件的限制。

    若要將 SQL Server 重新配置為更少的連接,應(yīng)使用 sp_configure。

    示例

    下面的示例假定 SQL Server 尚未被重新配置更少的用戶連接。

    SELECT @@MAX_CONNECTIONS

    下面是結(jié)果集:

    ------------------
    32767

    @@MAX_PRECISION

    返回 decimal numeric 數(shù)據(jù)類型所用的精度級別,即該服務(wù)器中當(dāng)前設(shè)置的精度。

    語法

    @@MAX_PRECISION

    返回類型

    tinyint

    注釋

    默認(rèn)情況下,最大精度返回 38。

    示例
    SELECT @@MAX_PRECISION

    @@NESTLEVEL

    返回當(dāng)前存儲過程執(zhí)行的嵌套層次(初始值為 0)。

    語法

    @@NESTLEVEL

    返回類型

    integer

    注釋

    每當(dāng)一個存儲過程調(diào)用另一個存儲過程時,嵌套層次即進(jìn)行遞增。超過最大層數(shù) 32 時,事務(wù)即被終止。

    示例

    下面的示例創(chuàng)建兩個過程:其中一個過程調(diào)用另一個過程,每個過程都顯示自身的 @@NESTLEVEL 設(shè)置值。

    CREATE PROCEDURE innerproc as 
    select @@NESTLEVEL AS 'Inner Level'
    GO

    CREATE PROCEDURE outerproc as
    select @@NESTLEVEL AS 'Outer Level'
    EXEC innerproc
    GO

    EXECUTE outerproc
    GO

    下面是結(jié)果集:

    Outer Level 
    -----------------
    1          

    Inner Level
    -----------------
    2          

    @@OPTIONS

    返回當(dāng)前 SET 選項的信息。

    語法

    @@OPTIONS

    返回類型

    integer

    注釋

    可以用"sp_configure 用戶選項"配置選項統(tǒng)一修改 SET 選項。每個用戶有一個 @@OPTIONS 函數(shù)代表其配置環(huán)境。從第一次登錄開始,系統(tǒng)管理員即為所有的用戶分配一個默認(rèn)的配置設(shè)置。

    可以用 SET 語句更改語言和查詢處理選項。

    示例

    下面的示例設(shè)置 NOCOUNT ON 選項,然后檢測 @@OPTIONS 的值。NOCOUNT ON 選項可防止將會話中每一條語句所影響的行數(shù)消息發(fā)回給請求的客戶機(jī)。@@OPTIONS 的值被設(shè)置為 512 (0x0200),代表 NOCOUNT 選項。下面的示例檢測客戶端是否啟用了 NOCOUNT 選項。例如,它有助于跟蹤客戶端的性能差異。

    SET NOCOUNT ON
    IF @@OPTIONS & 512 > 0
      RAISERROR ('Current user has SET NOCOUNT turned on.',1,1)

    @@PACK_RECEIVED

    返回 Microsoft? SQL Server? 自上次啟動后從網(wǎng)絡(luò)上讀取的輸入數(shù)據(jù)包數(shù)目。

    語法

    @@PACK_RECEIVED

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,其中包括發(fā)送和接收數(shù)據(jù)包的信息,可運(yùn)行 sp_monitor

    示例
    SELECT @@PACK_RECEIVED

    @@PACK_SENT

    返回 Microsoft? SQL Server? 自上次啟動后寫到網(wǎng)絡(luò)上的輸出數(shù)據(jù)包數(shù)目。

    語法

    @@PACK_SENT

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,其中包括發(fā)送和接收數(shù)據(jù)包的信息,可運(yùn)行 sp_monitor

    示例
    SELECT @@PACK_SENT

    @@PACKET_ERRORS

    返回自 SQL Server 上次啟動后,在 Microsoft? SQL Server? 連接上發(fā)生的網(wǎng)絡(luò)數(shù)據(jù)包錯誤數(shù)。

    語法

    @@PACKET_ERRORS

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,包括數(shù)據(jù)包錯誤,可運(yùn)行 sp_monitor

    示例
    SELECT @@PACKET_ERRORS

    @@PROCID

    返回當(dāng)前過程的存儲過程標(biāo)識符 (ID) 。

    語法

    @@PROCID

    返回類型

    integer

    示例

    下面的示例創(chuàng)建了一個過程,在此過程內(nèi)用 SELECT 顯示 @@PROCID 設(shè)置。

    CREATE PROCEDURE testprocedure AS
    SELECT @@PROCID AS 'ProcID'
    GO
    EXEC testprocedure
    GO

    @@REMSERVER

    當(dāng)遠(yuǎn)程 Microsoft? SQL Server? 數(shù)據(jù)庫服務(wù)器在登錄記錄中出現(xiàn)時,返回它的名稱。

    語法

    @@REMSERVER

    返回類型

    nvarchar(256)

    注釋

    @@REMSERVER 使存儲過程可以查看它在其上運(yùn)行的數(shù)據(jù)庫服務(wù)器名。

    示例

    下面的示例創(chuàng)建一個過程,名為 check_server,它返回遠(yuǎn)程服務(wù)器名。

    CREATE PROCEDURE check_server
    AS
    SELECT @@REMSERVER

    存儲過程創(chuàng)建在本地服務(wù)器 SEATTLE1 上。用戶登錄到遠(yuǎn)程服務(wù)器 LONDON2 上,然后運(yùn)行 check_server

    exec SEATTLE1...check_server

    下面是結(jié)果集:

    ---------------
    LONDON2

    @@ROWCOUNT

    返回受上一語句影響的行數(shù)。

    語法

    @@ROWCOUNT

    返回類型

    integer

    注釋

    任何不返回行的語句將這一變量設(shè)置為 0 ,如 IF 語句。

    示例

    下面的示例執(zhí)行 UPDATE 語句并用 @@ROWCOUNT 來檢測是否有發(fā)生更改的行。

    UPDATE authors SET au_lname = 'Jones'
    WHERE au_id = '999-888-7777'
    IF @@ROWCOUNT = 0
      print 'Warning: No rows were updated'

    @@SERVERNAME

    返回運(yùn)行 Microsoft? SQL Server? 的本地服務(wù)器名稱。

    語法

    @@SERVERNAME

    返回類型

    nvarchar

    注釋

    SQL Server 安裝程序在安裝時將服務(wù)器名設(shè)置為計算機(jī)名。可通過使用 sp_addserver 然后重新啟動 SQL Server 來更改 @@SERVERNAME。不過,通常不需要這種方法。

    當(dāng)安裝有多個 SQL Server 實例時,如果本地服務(wù)器名自安裝后未發(fā)生更改,則 @@SERVERNAME 返回以下本地服務(wù)器名信息。

    實例服務(wù)器信息
    默認(rèn)實例'服務(wù)器名'
    命名實例'服務(wù)器名\實例名'
    虛擬服務(wù)器 - 默認(rèn)實例'虛擬服務(wù)器名'
    虛擬服務(wù)器 - 命名實例'虛擬服務(wù)器名\實例名'

    盡管 @@SERVERNAME 函數(shù)和 SERVERPROPERTY 函數(shù)的 SERVERNAME 屬性可能返回相似格式的字符串,但信息會有所不同。SERVERNAME 屬性會自動報告計算機(jī)網(wǎng)絡(luò)名的更改。

    相比之下,@@SERVERNAME 不報告此更改。@@SERVERNAME 報告使用 sp_addserversp_dropserver 存儲過程對本地服務(wù)器名所做的更改。

    示例
    SELECT @@SERVERNAME

    @@SERVICENAME

    返回 Microsoft? SQL Server? 正在其下運(yùn)行的注冊表鍵名。若當(dāng)前實例為默認(rèn)實例,則 @@SERVICENAME 返回 MSSQLServer;若當(dāng)前實例是命名實例,則該函數(shù)返回實例名。

    語法

    @@SERVICENAME

    返回類型

    nvarchar

    注釋

    SQL Server 作為名為 MSSQLServer 的服務(wù)在 Microsoft Windows NT? 上運(yùn)行。它不在 Windows? 95/98 上作為服務(wù)運(yùn)行,因為該操作系統(tǒng)不支持服務(wù)。

    示例
    SELECT @@SERVICENAME

    下面是結(jié)果集:

    ------------------------------ 
    MSSQLServer

    @@SPID

    返回當(dāng)前用戶進(jìn)程的服務(wù)器進(jìn)程標(biāo)識符 (ID)。

    語法

    @@SPID

    返回類型

    smallint

    注釋

    @@SPID 可以在 sp_who 輸出結(jié)果中標(biāo)識當(dāng)前用戶進(jìn)程。

    示例

    下面的示例返回當(dāng)前用戶進(jìn)程的進(jìn)程 ID、登錄名和用戶名。

    SELECT @@SPID AS 'ID', SYSTEM_USER AS 'Login Name', USER AS 'User Name'

    下面是結(jié)果集:

    ID     Login Name       User Name  
    ----- -------------   -----------
    11   sa           dbo    

    @@TEXTSIZE

    返回 SET 語句 TEXTSIZE 選項的當(dāng)前值,它指定 SELECT 語句返回的 textimage 數(shù)據(jù)的最大長度,以字節(jié)為單位。

    語法

    @@TEXTSIZE

    返回類型

    integer

    注釋

    默認(rèn)大小是 4096 字節(jié)。

    示例

    下面的示例用 SELECT 語句顯示用 SET TEXTSIZE 語句改變前后的 @@TEXTSIZE 值。

    SELECT @@TEXTSIZE
    SET TEXTSIZE 2048
    SELECT @@TEXTSIZE

    下面是結(jié)果集:

    ------------------------
    64512

    ------------------------
    2048

    @@TIMETICKS

    返回一刻度的微秒數(shù)。

    語法

    @@TIMETICKS

    返回類型

    integer

    注釋

    每一刻度的時間量依賴于計算機(jī)。操作系統(tǒng)的一刻度是 31.25 毫秒,或是三十分之一秒。

    示例
    SELECT @@TIMETICKS

    @@TOTAL_ERRORS

    返回 Microsoft? SQL Server? 自上次啟動后,所遇到的磁盤讀/寫錯誤數(shù)。

    語法

    @@TOTAL_ERRORS

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,包括錯誤總數(shù)信息,可運(yùn)行 sp_monitor。

    示例

    下面的示例顯示了 SQL Server 到當(dāng)前日期和時間為止所遇到的錯誤數(shù)。

    SELECT @@TOTAL_ERRORS AS 'Errors', GETDATE() AS 'As of'

    下面是結(jié)果集:

    Errors         As of                          
    -------     -------------------------------
    0         1998-04-21 22:07:30.013    

    @@TOTAL_READ

    返回 Microsoft? SQL Server? 自上次啟動后讀取磁盤(不是讀取高速緩存)的次數(shù)。

    語法

    @@TOTAL_READ

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,包括讀寫活動信息,可運(yùn)行 sp_monitor。

    示例

    下面的示例顯示了到當(dāng)前日期和時間為止的總的磁盤讀寫次數(shù)。

    SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'

    下面是結(jié)果集:

    Reads       Writes        As of
    ---------   -----------   ------------------------------
    978       124       1998-04-21 22:14:22.37

    @@TOTAL_WRITE

    返回 Microsoft? SQL Server? 自上次啟動后寫入磁盤的次數(shù)。

    語法

    @@TOTAL_WRITE

    返回類型

    integer

    注釋

    若要顯示包含幾個 SQL Server 統(tǒng)計信息的報表,包括讀寫活動信息,可運(yùn)行 sp_monitor。

    示例

    下面的示例顯示了到當(dāng)前日期和時間為止總的磁盤讀寫次數(shù)。

    SELECT @@TOTAL_READ AS 'Reads', @@TOTAL_WRITE AS 'Writes', GETDATE() AS 'As of'

    下面是結(jié)果集:

    Reads       Writes        As of
    ---------   -----------   ------------------------------
    978       124       1998-04-21 22:14:22.37    

    @@TRANCOUNT

    返回當(dāng)前連接的活動事務(wù)數(shù)。

    語法

    @@TRANCOUNT

    返回類型

    integer

    注釋

    BEGIN TRANSACTION 語句使 @@TRANCOUNT 遞增 1。ROLLBACK TRANSACTION 將 @@TRANCOUNT 遞減為 0,但 ROLLBACK TRANSACTION savepoint_name 語句并不影響 @@TRANCOUNT 值。COMMIT TRANSACTION 或 COMMIT WORK 將 @@TRANCOUNT 遞減 1。

    示例

    下面的示例用 @@TRANCOUNT 測試應(yīng)該提交的打開事務(wù)。

    BEGIN TRANSACTION
    UPDATE authors SET au_lname = upper(au_lname)
    WHERE au_lname = 'White'
    IF @@ROWCOUNT = 2
      COMMIT TRAN

    IF @@TRANCOUNT > 0
    BEGIN
      PRINT 'A transaction needs to be rolled back'
      ROLLBACK TRAN
    END

    @@VERSION

    返回 Microsoft? SQL Server? 當(dāng)前安裝的日期、版本和處理器類型。

    語法

    @@VERSION

    返回類型

    nvarchar

    注釋

    @@VERSION 返回的信息與 xp_msver 存儲過程返回的產(chǎn)品名、版本、平臺和文件數(shù)據(jù)相似,但 xp_msver 存儲過程提供更詳細(xì)的信息。

    示例

    下面的示例返回當(dāng)前安裝的日期、版本和處理器類型。

    SELECT @@VERSION
    相關(guān)文章
    本頁查看次數(shù):