SQL SERVER 系統函式

景上發表於2016-05-21
--1、COL_LENGTH(table,column):返回table表中column欄位的長度;
SELECT COL_LENGTH('person','gender'),COL_LENGTH('person','FirstName');

--2、COL_NAME(TABLE_ID,COLUMN_ID)返回指定表中指定欄位的名稱;
SELECT COL_NAME(OBJECT_ID('person'),1);---返回person表中第1個欄位的名稱;

--3、DATALENGTH(X):返回欄位x的資料的實際長度,即位元組數,NULL的長度為NULL;
SELECT DATALENGTH('id'),DATALENGTH('Gender') FROM person WHERE id=2;

--4、DB_ID():返回資料庫的編號;
SELECT DB_ID('test2'),DB_ID('master'),DB_ID();--沒有指定引數時返回當前資料庫的編號;

--5、DB_NAME():返回資料庫的名稱;
SELECT DB_NAME(),DB_NAME(DB_ID('test')),DB_NAME(DB_ID('test2'));

--6、GETANSINULL():返回當前資料庫預設是否允許空值,該函式對ANSI空值NULL返回1,如果沒有定義ANSI空值NULL,則返回0;
SELECT GETANSINULL('test2'),GETANSINULL('person'); ---test2是資料庫,person是資料表;

--7、HOST_ID():返回伺服器端計算機的標識號,返回值型別為CHAR(10);
SELECT HOST_ID();   --使用該函式可以記錄那些想資料表中插入資料的計算機終端的ID;

--8、HOST_NAME():返回伺服器端計算機的名稱;
SELECT HOST_NAME();

--9、OBJECT_ID():返回資料庫物件的編號;
SELECT OBJECT_ID('test2.dbo.person');  
   --test2為資料庫名稱,dbo為架構名稱,person為資料表名稱,此處為返回person表的物件ID;
   --當指定一個臨時表的表名mytemptable時,前面必須加上臨時資料庫名tempdb,如SELECT OBJECT_ID("tempdb..#mytemptable");

--10、SUSER_ID():根據登入名返回使用者的SID(安全標識號);
SELECT SUSER_SID(),SUSER_SID('COMPU\Administrator'); --不帶引數時返回當前使用者的ID,也可以帶引數指定使用者;

--11、SUSER_SNAME():返回與安全識別符號關聯的登入名,返回值型別為NVARCHAR(128);
SELECT SUSER_SNAME(),SUSER_SNAME(0x010500000000000515000000C1289E4023B53F66B8323512E9030000);

--12、OBJECT_NAME():返回資料庫物件的名稱;
   --示例:檢視資料庫test2中物件ID值為1205579333的物件名稱;
SELECT OBJECT_NAME(1205579333,DB_ID('test2')),OBJECT_ID('test2.dbo.person');

--13、USER_ID():根據指定使用者名稱返回資料庫使用者的ID,如果沒有指定使用者名稱,則返回當前使用者的資料庫ID;
SELECT USER_ID();

--14、USER_NAME():根據與資料庫使用者關聯的ID返回資料庫使用者名稱,返回值型別為nvarchar(256);
SELECT USER_NAME(),USER_NAME(USER_ID());

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

相關文章