SQL?Server系統(tǒng)函數(shù)介紹
一、常用函數(shù):
- APP_NAME: 返回當前會話的應用程序名稱(如果應用程序進行了設置)。
SELECT APP_NAME()
- COALESCE: 返回其參數(shù)中第一個非空表達式
SELECT COALESCE(NULL,NULL,123,NULL)
- COL_LENGTH(table,column):返回table表中column字段的長度;
SELECT COL_LENGTH('person','gender'),COL_LENGTH('person','FirstName');
- COL_NAME(TABLE_ID,COLUMN_ID):返回指定表中指定字段的名稱;
SELECT COL_NAME(OBJECT_ID('person'),1);---返回person表中第1個字段的名稱;
- COLLATIONPROPERTY: 返回給定排序規(guī)則的屬性
- CURRENT_TIMESTAMP: 返回當前的日期和時間。此函數(shù)等價于 GETDATE()
- CURRENT_USER: 返回當前的用戶。
此函數(shù)等價于 USER_NAME()
SELECT CURRENT_USER
- DATALENGTH(x): 返回字段x的數(shù)據(jù)的實際長度,即字節(jié)數(shù),NULL的長度為NULL;
SELECT DATALENGTH('id'),DATALENGTH('Gender') FROM person WHERE id=2;
- @@ERROR: 返回最后執(zhí)行的 Transact-SQL 語句的錯誤代碼
- fn_helpcollations: 返回 Microsoft® SQL Server™ 2000 支持的所有排序規(guī)則的列表。
- fn_servershareddrives: 返回由群集服務器使用的共享驅(qū)動器名稱
- fn_virtualfilestats: 返回對數(shù)據(jù)庫文件(包括日志文件)的 I/O 統(tǒng)計
- FORMATMESSAGE: 從 sysmessages 現(xiàn)有的消息構造消息。
FORMATMESSAGE 與 RAISERROR 語句的功能相似;但 RAISERROR 立即輸出消息而 FORMATMESSAGE: 返回編輯后的信息供進一步處理
- GETANSINULL: 返回會話的數(shù)據(jù)庫的默認為空性。
該函數(shù)對ANSI空值NULL返回1,如果沒有定義ANSI空值NULL,則返回0;
SELECT GETANSINULL('test2'),GETANSINULL('person'); ---test2是數(shù)據(jù)庫,person是數(shù)據(jù)表;
- HOST_ID: 返回工作站標識號。
返回值類型為CHAR(10);
SELECT HOST_ID(); ? --使用該函數(shù)可以記錄那些想數(shù)據(jù)表中插入數(shù)據(jù)的計算機終端的ID;
- HOST_NAME: 返回工作站名稱。
SELECT HOST_NAME();
- IDENT_INCR: 返回增量值(返回形式為 numeric(@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創(chuàng)建標識列時指定的
- IDENT_SEED: 返回種子值(返回形式為 numeric(@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創(chuàng)建標識列時指定的
- IDENTITY(函數(shù)): 只用在帶有 INTO table 子句的 SELECT 語句中,以將標識列插入到新表中。
盡管類似,但是 IDENTITY 函數(shù)不是與 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 屬性。(自動采番時可以起到作用)
- ISDATE: 確定輸入表達式是否為有效的日期
- ISNULL: 使用指定的替換值替換 NULL
SELECT AVG(ISNULL(id,0)) FROM dbo.school AS s
- ISNUMERIC: 確定表達式是否為一個有效的數(shù)字類型
PRINT ISNUMERIC('1223A')
- NEWID: 創(chuàng)建 uniqueidentifier 類型的唯一值
- NULLIF: 如果兩個指定的表達式相等,則返回空值。
SELECT NULLIF('AA','AA')
- PARSENAME: 返回對象名的指定部分??梢詸z索的對象部分有對象名、所有者名稱、數(shù)據(jù)庫名稱和服務器名稱
- PERMISSIONS: 返回一個包含位圖的值,表明當前用戶的語句、對象或列權限。
- @@ROWCOUNT: 返回受上一語句影響的行數(shù)
- ROWCOUNT_BIG: 返回受執(zhí)行的最后一個語句影響的行數(shù)。該函數(shù)的功能與 @@ROWCOUNT 一樣,除非 ROWCOUNT_BIG 的返回類型是 bigint。
- SERVERPROPERTY: 返回有關服務器實例的屬性信息
- SESSIONPROPERTY: 返回會話的 SET 選項設置
- SESSION_USER: 是一個 niladic 函數(shù),允許在未指定默認值時將系統(tǒng)為當前會話的用戶名提供的值插入到表中。還允許在查詢、錯誤信息等中使用用戶名
- SCHEMA_NAME: 查看Schema的ID和Name
- STATS_DATE: 返回最后一次更新指定索引統(tǒng)計的日期
SELECT STATS_DATE(OBJECT_ID('school'),1)
- SYSTEM_USER: 返回當前系統(tǒng)用戶名
- SUSER_ID():根據(jù)登錄名返回用戶的SID(安全標識號)
SELECT SUSER_SID(),SUSER_SID('COMPU\Administrator'); --不帶參數(shù)時返回當前用戶的ID,也可以帶參數(shù)指定用戶;
- SUSER_SNAME():返回與安全標識符關聯(lián)的登錄名
返回值類型為NVARCHAR(128);
SELECT SUSER_SNAME(),SUSER_SNAME(0x010500000000000515000000C1289E4023B53F66B8323512E9030000);
- @@TRANCOUNT: 返回當前連接的活動事務數(shù)
- USER_ID():根據(jù)指定用戶名返回數(shù)據(jù)庫用戶的ID,
如果沒有指定用戶名,則返回當前用戶的數(shù)據(jù)庫ID;
SELECT USER_ID();
- USER_NAME():根據(jù)與數(shù)據(jù)庫用戶關聯(lián)的ID返回數(shù)據(jù)庫用戶名,
返回值類型為nvarchar(256);
SELECT USER_NAME(),USER_NAME(USER_ID());
二、插入后返回值的方法:
- SCOPE_IDENTITY: 返回為當前會話和當前作用域中的任何表最后生成的標識值。 SELECT SCOPE_IDENTITY();(推薦)
- @@IDENTITY: 返回為當前會話的所有作用域中的任何表最后生成的標識值。 SELECT @@Identity;
- IDENT_CURRENT: 返回為任何會話和任何作用域中的特定表最后生成的標識值。SELECT IDENT_CURRENT('table_name');
到此這篇關于SQL Server系統(tǒng)函數(shù)的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持本站。
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。