【SQL基礎】T-SQL函式型別——系統函式

iSQlServer發表於2010-05-20

T-SQL系統函式提供了一些跟資料庫物件有關的資訊。大部分系統函式用的是內部數字識別符號(ID),系統將標識賦值給每個資料庫物件。使用這類識別符號,系統就能獨立識別每個資料庫物件。

1CAST(a as type[(length)]),將表示式a轉換指定的資料型別type,如果轉換失敗將報ERROR

例:SELECT CAST('123' as int);  結果為123

2COALESCE(a1,a2,),返回給定清單上的表示式a1a2…,第一個不為NULL的表示式值

例:SELECT COALESCE('a1','a2'); 結果為a1

    SELECT COALESCE(NULL,'a2'); 結果為a2

3COL_LENGTH(obj,col),返回col列的長度,該長度值屬於資料庫物件(表或檢視)obj

例:SELECT COL_LENGTH('customers','cust_ID');結果為10

4CONVER(type[(length)],a)CAST相等,但是對這兩個引數指定條件不同。COVERT能用於任何資料型別。

例:SELECT CONVERT(int,'123'),結果為123

5CURRENT_TIMESTAMP,返回目前的日期和時間。

例:SELECT CURRENT_TIMESTAMP,結果為2010-05-19 17:25:39.437

6CURRENE_USER,返回目前使用者的姓名。

例:SELECT CURRENT_USER; 結果為dbo

7 DATALENGTH(expr),計算表示式expr的結果長度(位元組)。

例:SELECT DATALENGTH(ProductName) from products; 結果返回每條記錄對應ProductName的資料長度。

8GETANSINULL(dbname),如果按照ANSI SQL標準在資料庫dbname中使用NULL值,那麼返回值為1

例:SELECT GETANSINULL('TEST'); 結果為1

9ISNULL(expr,value),如果表示式expr不為0,就返回expr值;否則返回value

例:SELECT ISNULL('a','b')  結果為a

    SELECT ISNULL(NULL,'b'); 結果為b

10ISNUMERIC(expr),判斷表示式是否屬於有效的數字型。如果是有效數字型返回1,否則返回0

例:SELECT ISNUMERIC(123)結果為1

    SELECT ISNUMERIC('a'); 結果為0

11NEWID(),建立有16個位元組組成的二進位制字串儲存UNIQUEINENTIFIER資料型別。

12NEWSEQUENTALID(),在指定的計算機上建立GUID,它比該函式之前產生的GUID值要大。可以利用該函式設定欄位的預設值。

13NULLIF(expr1,exprs),如果表示式expr1expr2相等,返回NULL值。否則返回expr1

例:SELECT NULLIF('a','a'); 結果為NULL

    SELECT NULLIF('a','b'); 結果為a

14SERVERPROPERTY(propertyname),返回資料庫伺服器的屬性資訊。

propertyname的值如下:

屬性

返回值

BuildVersion

生成 SQL Server 例項時使用的 .NET Framework 公共語言執行時 (CLR) 的版本.

Collation

伺服器的預設排序規則名稱。

CollationID

SQL Server 排序規則的 ID

ComparisonSytle

排序規則的 Windows 比較樣式。

ComputerNamePhysicalNetBIOS

前執行 SQL Server 例項的本地計算機的 NetBIOS 名稱。

Edition

所安裝的 SQL Server 例項的產品版本。

EditionID

標識號,表示已安裝的 SQL Server 例項的產品版本

EngineEdition 

伺服器上安裝的 SQL Server 例項的資料庫引擎版本。

InstanceName

使用者連線到的例項的名稱。

IsClustered 

在故障轉移群集中配置伺服器例項。

IsFullTextInstalled

 SQL Server 的當前例項中安裝全文元件。

IsIntegratedSecurityOnly

伺服器處於整合安全性模式下。

IsSingleUser

伺服器處於單使用者模式下。

LCID

排序規則的 Windows 區域設定識別符號 (LCID)

LicenseType

 SQL Server 例項的模式。

MachineName

執行伺服器例項的 Windows 計算機名稱。

NumLicenses

如果處於每客戶模式下,則為該 SQL Server 例項的註冊客戶端許可數。

如果處於每處理器模式下,則為該 SQL Server 例項的許可處理器數。

如果伺服器不是上述模式,則返回 NULL

ProcessID

SQL Server 服務的程式 ID

ProductVersion

SQL Server 例項的版本

ProductLevel

SQL Server 例項的版本級別。

ResourceLastUpdateDateTime

返回資源資料庫上次更新的日期和時間。

ResourceVersion

返回版本資源資料庫。

ServerName

Windows 伺服器和與指定的 SQL Server 例項關聯的例項資訊。

SqlCharSet

排序規則 ID 中的 SQL 字符集 ID

SqlCharSetName

排序規則中的 SQL 字符集名稱。

SqlSortOrder

排序規則中的 SQL 排序順序 ID

SqlSortOrderName

排序規則中的 SQL 排序順序名稱。

FilestreamShareName

FILESTREAM 使用的共享的名稱。

FilestreamConfiguredLevel

FILESTREAM 訪問的配置級別

FilestreamEffectiveLevel

FILESTREAM 訪問的有效級別

例:SELECT SERVERPROPERTY('BuildClrVersion')結果為 v2.0.50727

15SYSTEM_USER,返回目前使用者的登入ID

例:SELECT SYSTEM_USER; 結果為當前使用者名稱

16USER_ID([user_name]),返回使用者user_name的識別符號,如果沒有指定user_name,就返回當前使用者的識別符號。

例:SELECT USER_ID('guest'); 結果為2

17USER_NAME([id]),返回帶有識別符號id的使用者名稱字;如果沒有指定使用者名稱,就檢索當前使用者的名字。

例:SELECT USER_NAME(2) 結果為guest

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-663209/,如需轉載,請註明出處,否則將追究法律責任。

相關文章