您的位置:首页 > 数据库

T-SQL 实用函数总结

2010-11-17 00:01 190 查看
T-SQL是微软在关系型数据库管理系统SQL Server中的SQL-3标准的实现,是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素,使得其功能更加强大。并且T-SQL自带了许多实用的函数,DBA可以利用这些函数来进行更有效地管理。

T-SQL字符串函数

T-SQL字符串函数---截取字符串的值

下面的一组函数详细描述了如何截取字符串的一部分。这些函数大部分都包含在下面的SELECT语句中:

SELECT ProductName,
LEFT(ProductName, 12) AS A,
SUBSTRING(ProductName, 9, 4) AS B,
RIGHT(ProductName, 2) AS C,
RTRIM(ProductName) AS D
FROM Products
可以看到,SELECT语句中包括函数LEFT,SUBSTRING,RIGHT和RTRIM。执行结果:

代码

USE Northwind;
IF OBJECT_ID('TableA', 'U') IS NOT NULL
DROP TABLE dbo.TableA;
CREATE TABLE dbo.TableA
(
ColA INT IDENTITY(101, 100) NOT NULL,
ColB VARCHAR(20) NOT NULL
);
INSERT INTO TableA (ColB) VALUES('red');
INSERT INTO TableA (ColB) VALUES('blue');
INSERT INTO TableA (ColB) VALUES('green');
INSERT INTO TableA (ColB) VALUES('yellow');
INSERT INTO TableA (ColB) VALUES('orange');

SELECT * FROM TableA;
现在,我们来看一个例子,其中使用了几个系统函数提取关于刚插入上面那个表的数据相关的信息。下面的“SELECT语句”包括五个函数,其中三个与身份列值有关,而另两个与行数有关:

SELECT
IDENT_CURRENT('TableA') AS LastValue,
IDENT_SEED('TableA') AS SeedValue,
IDENT_INCR('TableA') AS IncrValue,
@@ROWCOUNT AS RowsAffected,
ROWCOUNT_BIG() AS BigRowsAffected;
执行结果:



第一个函数是IDENT_CURRENT,它提取插入表“TableA”的最后一个身份值。如你所见,表“TableA”被指定为该函数的一个入参。该函数返回的信息与添加数据时的会话无关,也与添加时执行的语句范围无关。这一点非常重要,因为SQL Server支持其他身份相关的函数,包括专门针对当前会话(@@IDENTITY)和当前范围和会话(SCOPE_IDENTITY)的函数。

IDENT_SEED函数返回起始值,而IDENT_INCR函数返回增量值。

@@ROWCOUNT 函数返回最后一个语句影响的行数。“ROWCOUNT_BIG”函数也做同样的事情,唯一区别是返回值类型是bigint。如果你预计影响的行数会多于20亿条数据,你应该使用这个函数。要注意,这两个函数都不是关联于某个表的,因为这两个函数基于最后一条执行的语句获取数据。

T-SQL系统函数---查看服务器属性

有时,你可能想要检索特定的服务器属性值,这种情况下,你可以使用“SERVERPROPERTY”函数。该函数有一个参数(属性名称),请看下面的示例:

SELECT
SERVERPROPERTY('Edition') AS SrvEdition,
SERVERPROPERTY('InstanceName') AS SrvInstance,
SERVERPROPERTY('Collation') AS SrvCollation;
在这个“SELECT”语句中,我检索了“Edition”,“InstanceName ”和“Collation ”属性的设置,它们以参数的形式传递到函数中。该“SELECT”语句返回下面结果:



还有些比较常用的函数就不总结了,十分的简单,赠书一本 /Files/gaoweipeng/transactionsql.pdf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: