Sql函数集合

Sql函数集合
聚合函数 --------------------------------------------------------------------------------------
时间及日期函数 -----------------------------------------------------------------------------
数学函数 --------------------------------------------------------------------------------------
元数据函数 -----------------------------------------------------------------------------------
字符串函数 -----------------------------------------------------------------------------------
文本和图像函数 -----------------------------------------------------------------------------
配置函数 ---------------------------------------------------------------------------------------
系统函数 ---------------------------------------------------------------------------------------
系统统计函数 ---------------------------------------------------------------------------------
事务、游标、存储过程及触发器 ---------------------------------------------------------
数据库管理 ------------------------------------------------------------------------------------
数据检索、高级检索 ------------------------------------------------------------------------
数据库设计 ------------------------------------------------------------------------------------
MDX函数 -------------------------------------------------------------------------------------
ODBC API函数 ------------------------------------------------------------------------------
DB_LIBRARY API 函数 -------------------------------------------------------------------


























聚合函数:
1.	AVG 返回组中的平均值,空值将被忽略。
例如:use  northwind   // 操作northwind数据库
		 Go
		 Select  avg (unitprice)   //从表中选择求unitprice的平均值
      From  products
      Where  categoryid = ‘8’
   2. BINABY_CHECKSUM  可用于检测表中行的更改
返回值由表达式的运算结果类型决定 
例如:use northwind
             Go 
      Create  table  tablebc(productid int,bchecksum int)   //建立有两个属性的表
      Insert  into tablebc   //向表中插入数据
          Select  priductid,binary_checksum(*) 
          From  products
 		 Update  products   //更新
      Set  productname=’oishi tofu’, unitprice=20 where  productname = ‘tofu’
		 
		 Update  products   //更新
		 Set  priductname=’oishi konbu’, unitprice = 5 where priductname=’konbu’

      Update priducts     //更新
		 Set  prodctname=’oishi genen shouyu’, unitprice =12
           Where priductname=’genen shouyu’           

 			 Select  productid  		//挑出变化的行
			 From tablebc
			 Where exists (
Select productid from products
Where  product.productid = tablebc.productid and 
binary_checksu (*) <> tablebc.bchecksum)  //标志出变化的行

3.	CHECKSUM  返回在表的行上或在表达式上计算的校验值 CHECKSUM 用于生成
              哈希索引
例如:
     Set arithabort on 
		 Use northwind
		 Go
      Alter table products
      Add cs_pname as checksum(productname)  //在参数列是添加一个校验值 
      Create imdex pname_index on products(cs_pname)  //生成索引
      Go
      Select top 5 cs_pname from products order by cs_pname desc //选择根据索引
列的前5 个cs_pname
4.Checksum_agg   返回组中值的校验值。空值冽被忽略。
   例如:
        Use northwind 
  			Go
		Select checksum_agg(cast(unitsinstock  as int)) //检测products 表的unitsinstock列
的更改
from products
5.Count   返回组中项目的数量
   例如:
		例一:
		Use pubs
		Go
		Select count(distinct city)  //对city中的每一行都计算,并返回非空的数量
				From authors
		Go
		例二:
        Use pubs 
		Go
		Select count(*)  // 返回组中项目的数量
			From titles
		Go
		例三:
		Use pubs
		Go
		Select count(*),avg(price) // 选择advance大于$1000的总数和平均price
			From titles 
			Where advance >$1000
		Go
6.Count_big  返回组中项目的数量。在使用上和count 基本上是一样的,只是在返回值上
			 有一点区别,count_big 返回是bigint的数据类型值,count返回的是int数据
类型值。
7.Grouping  返回一个聚合函数,它产生一个附加列,当用CUBE或ROLLUP运算符添加
			 行时,附加 的列输出值为1,当所添加的行不是由CUBE或ROLLUP产生
			 时,附加列值为0
   例如:
		Use pubs
		Go
		Select royalty,sum(advance) ‘total advance’,  //选择列royalty,聚合 advance数值
		Grouping(royalty) ‘grp’  //grouping 函数
		From titles
        Group by royalty with rollup //group by 与 rollup 相联系产生分组
8.Max  返回表达式的最大值
   例如:
		Use pubs
		Go
		Select max(ytd_sales)  //选择ytd_sales列属性,求其最大值。
		From titles
		Go
9.Min  返回表达式的最小值 
   例如:
		Use pubs 
		Go
		Select min(ytd_sales)  //选择ytd_sales列属性,求其最小值。
		From titles
		Go
10.Stdev  返回给定表达式中所有值的统计标准偏差。
	例如:
		Use pubs
		Select stdev(royalty)
		From titles
11.Stdevp  返回给定表达式中所有值的填充统计标准偏差。
	例如:
		Use pubs
		Select stdev(royalty)
		From titles
12.sum  返回表达式中所有值的的和,或只返回DISTINCT值。SUM只能用数字列。
	例如:
		Use pubs
		Go
		Select type,sum(price),sum(advance)  //选择type,price的和,advance的和
		From titles
		Where type like ‘%cook’  //匹配结尾字符为cook
		Group by type 
		Order by type
		Go
	例如2:
		Use pubs
 		Go
		Select type,price,advance
		From titles
		Where type like’%cook’
		Order by type
		Compute sum(price),sum(advance) by type   //根据type的属性计算price和advance
的和
13.Var  返回给定表达式中所有值的统计方差。
	例如:
		Use pubs 
		Go
		Selecdt var(royalty)
		From titles
14.Varp  返回给定表达式中所有值的填充的统计方差
	例如:
		Use pubs
		Go
		Select  varp(royalty)
		From titles




































时间及日期函数                                                          TOP


1.Dateadd  在向指定日期加上一段时间的基础上返回新datetime值。
	例如:
		Use northwind
		Go
		Select dateadd(day,3,Hiredate)   //显示函数dateadd执行结果
		From employees
2.	datediff  返回跨两个指定日期和时间边界数。
例如:
		Use northwind
		Go
		Select datediff(day,Hiredate,getdate()) as no_of_days
		From employees
		go
3.	Datename  返回代表指定日期的指定日期部分的字符串。
例如:
	Select datename(month,getdate()) as ‘monthname’
4.Datepart  返回代表指定日期的指定日期部分的整数。
	例如:
		Select datepart(month,getdate()) as ‘monthnumber’
		Select datepart(m,0),datepart(d,0),datepart(yy,0)
5.Day month year  返回指定日期的天 月 年 的日期部分的整数
	例如:
		Select month(0),day(0),year(0)
6.Getdate  按datetime值的标准内部格式返回当前系统时间和日期
	例如:
		Use northwind
		Go
		Create table sales  //创建sales表
		(
		Sale_id char(11) not null  //sale_id列,类型char(11),not null
		Sale_name varchar(40) not null  //sale_name列,类型varchar(40),not null
		Sale_date datetime defaull getdate()  // sale_date列,类型datetime,默认值getdate()
		)
		Insert into sales (sale_id,sale_name) 
				 Values(1,’foods’)   //向表内插值
		Select * from sales   //表结果检索
7.Getutcdate  返回表当前CUT时间的datetime值。
	例如:
		Select getutcdatea()


数学函数																TOP
1.	Abs  返回给定数字的绝对值
2.	Acos  返回以弧度表示的角度值,该角度值的余弦为给定的float表达式,也叫反余弦
3.	Asin   返回以弧度表示的角度值,也叫反正弦。
例如:
		Declare @angle float
		Set @angle = -1.01
		Select ‘the asin of the angke is : ’ + convert (varchar,asin(@angle))
4.	Atan  返回以弧度表示的角度值,该角度值的正切为给定的float表达式,也叫反正切。
5.	Atn2  返回以弧度表示的角度值,该角度值的正切介于两个给定的float表达式之间
例如:
		Declare @anglel float
		Declare @angle2 float
		Set @anglel = 35.175643
		Set @angle2 =129.44
		Select ‘the atn2 of the angle is : ’ + convert (varchar,atn2(@anglel,@angle2))
		Go
6.	Ceiling  返回或等于所给数字表达式的最小整数。
例如:
		Select ceiling($123.45),ceiling($-123.45),ceiling($0.0)
7.	Cos  返回给定表达式中给定角度的三角余弦值
8.	Cot  返回给定float表达式指定角度的三角余切值
例如:
		Declare @angle float
		Set @angle = 124.1332
		Select ‘the cot fo the angle is :’ + convert(varchar,cot(@angle))
9.	Degrees  当给出弧度为单位的角度时,返回相应的以度数为单位的角度。
例如:
		Select ‘the number of degrees in PI/2 radinans is :’ +convert(varchar,degrees((PI()/2)))
10.	Exp  返回所给的float表达式的指数值。
11.	floor  返回小于或等于所给数字表达式的最大整数。
12.	log   返回给定float表达式的自然对数。
13.	log10  返回给定float表达式的以10为底的对数。
例如:
		Declare @var float
		Set @var = 5.175643
		Select ‘the log of the variable is :’ +convert (varchar,log(@var))
14.	PI  返回PI的常量值。
15.	power  返回给定表达式乘指定次方的值。
例如:
		Declare @value int,@counter int
		Set @value = 2
		Set @counter = 1
		While @counter <5 
		Begin 
			Select power(@value,@counter)
		Set nocount on 
			Set @counter=@counter +1
		End
		Go
16.	radians 对于数字表达式中输入的度数值返回弧度值。
17.	rand  返回0到1之间的随机float值。
18.	round  返回数字表达式并四舍五入为指定的长度或精度。
例如:
		Select round(123.9995,3),round(123.9994,3)
19.	sign  返回给定表达式的正 零 或负号
例如:
		Declare @angle gloat 
		Declare @value real
		Set @value=-1
		While @value<2 
			Begin 
				Select sign(@value)
		Set nocount on
			Select @value=value+1
			end
		Set nocount off
20.	sin 以近似数字表达式返回给定角度的三角正弦值。
21.	sqrt  返回给定表达式的平方根。
例如:
		Declare @myvalue float
		Set @myvalue = 1.00
		While @myvlaue <10
			Begin
				Select sqrt(@myvalue)
		Select @myvalue = @myvalue+1
		End
22.	square  返回给定表达式的平方值。
23.	tan  返回给定表达式的正切。









元数据函数																TOP
1.	col_length  返回列的定义长度
例如:
		Use northwind
		Go
		Create table t1
			( c1 varchar(40),
			 C2 nvarchar(80) )
		Go
		Select col_length(‘t1’,’c1’) as ‘varchar’
		Select col_length(‘t2’,’c2’) as ‘nvarchar’
		Go
		Drop table t1
2.	col_name  返回数据库列的名称,该列具有相应的表标识号和列标识号。
例如:
		Use northwind
		Go
		Set nocount off
		Select col_name(object_id(‘employees’),1) as employees
3.	columnproperty  返回有关列或过程的参数的信息。
例如:
		Use northwind
		Go
		Select columnproperty (object_id(‘employees’),’title’,’precision’)
4.	databaseproperty  返回给定数据库和属性名的命名数据库属性值。
例如:
		Use northwind
		Go
			Select databaseproperty(‘northwind’,’isautoclose’)
5.	databasepropertyex  返回指定数据库的指定数据库选项或属性的当前设置。
例如:
		Use northwind
		Go		
			Select databasepropertyex(‘northwind’,isautoclose’)
6.	db_id  返回数据库标识ID
例如:
		Select name,db_id(name) as db_id
		From sysdatabases
		Order by dbid
7.	db_name 返回数据库名称。
8.	file_id  返回当前数据库中给定逻辑文件标识(id)号。
9.	file_name  返回指定文件标识(id)号的逻辑文件名。
10.	filegroup_id  返回给定文件组名称号
11.	filegroup_name 返回给定文件组标识(id)号的文件组名。
12.	filegroupproperty  给定文件组和属性名时,返回指定的文件组属性值。
13.	fileproperty  给定文件名和属性时返回指定的文件名属性值。
14.	fn_listextendedproperty  返回数据库对像的扩展属性值。
例如:
		Use northwind
		Go
		Create table t1 (id int, name char(20))  //创建表T1
		Exec sp_addextendedproperty  ‘caption’,’employee id’,’user’,dbo,’table’,’t1’,
’column’,id     //为表T1列ID添加扩展属性
Exec sp_addextendedproperty  ‘caption’,’employee name’,’user’, dbo, ‘table’,
‘t1’,’column’,name
Select * from ::fn_listextendedproperty (null,’suer’,’dbo’,table’,t1’,’column’,
		Default)   //列举表T1的扩展属性
15.	fulltextserviceproperty  返回有关全文服务级别属性的信息。
原型:fulltextserviceproperty (catalog_name,property)
		参数说明:
		Catalog_name 包含全文目录名称的表达式。
		Property  包含全文目录属性名称的表达式。
			Property 参数值列表
				Populatestatus  0 = 空闲  1 = 正在进行完全填充  2 = 已暂停
							 3 = 中止  4 = 正在恢复   5 = 关机
							 6 = 正在进行增量填充  7 = 生成索引  
							 8 = 磁盘已满,已暂停  9 = 更改跟踪
例如:
		Use northwind
		Go	
			Select  fulltextcatalogproperty(‘cat_desc’,’itemcount”)
16.	fulltextserviceproperty  返回有关全文服务级别属性的信息。
原型:fulltextserviceproperty(property)
		Property 参数说明
			
ResourceUsage	一个从 1(后台)到 5(专用)之间的值。 
ConnectTimeout	在超时发生前,Microsoft 搜索服务等待所有与 Microsoft? SQL Sever? 数据库服务器的连接完成以便进行全文索引填充所用的时间(以秒为单位)。
IsFulltextInstalled	在 SQL Server 的当前实例中安装全文组件。 
1 = 已安装全文组件。
0 = 未安装全文组件。
NULL = 输入无效或发生错误。
DataTimeout	在超时发生前,Microsoft 搜索服务等待所有由 Microsoft SQL Server 数据库服务器返回数据以便进行全文索引填充所用的时间(以秒为单位)。
 
例如:
		Use northwind
		Go
			Select fulltextserviceproperty(‘isfulltextinstalled’)
17.	index_col  返回索引列名称。
原型:index_col(‘table’,’index_id’,’key_id’)
		参数:table 表的名称。
			  Index_id 索引的ID
			  Key_id  键的ID
例如:
		Use northwind 
		Go
			Declare @id int, @type char(2), @msg varchar(10), @indid smallint, 
@indname sysname, @status int  //声明变量
		Set nocount on 
			Select @id=id,@type=type  //获得employees表的ID号以便在系统索引库中
										查找其索引
			From sysobjects 
			Where name=’employees’ and type=’u’
			Print ‘index information for the authors table’  //打印输出信息
			Print ‘----------------------------------------------’
		Declare  I cursor   //声明一个游标
			For 
			Select indid, name, status  //循环搜索employees 表中所有的索引
			From sysindexes
			Where id=@id
			Open I        //打开游标
			Fetch next from I into @indid, @indname, @status   //获取下一系列索引信息
				If @@fetch_status = 0   //如果状态为0,打印‘ ’
					Print ‘ ‘
  				While @@fetch_status = 0  //循环如果从游标处查找还有行,打印出相关
索引信息
				Begin 
				Set @msg = null    //初始化变量msg为null
				Set @msg = ‘ index number ‘ + convert(varchar,@indid)+
						‘is’ + @indname    //填充索引名变量
				Set @indkey = 1    //初始化变量indkey为1
					While @indkey<=16 and index_col(@name,@indid,
@indkey)   // indkey等于key_id,其值可以从1到16
					Is not null
				Begin 
				If @indkey = 1  //打印不同的信息当indkey不等于1和等于1时
				Set @msg = msg + ‘, ‘+ Index_col(@name,@indid,@indkey)
					Set @indkey = @indkey + 1   //indkey递增
				End 
				Print @msg   //打印信息
				Set @msg = null
				Fetch next from I into @indid,@indname,@status   //循环下一条
			End
			Close I 
			Deallocate i
			Set nocount off	
18.	indexkey_property  返回有关索引键的信息
原型:
		Indexkey_property (table_id,index_id,key_id,property)
		参数说明:
				Table_id 表标识号
				Index_id 索引标识号
				Indkey_id 索引列的位置
				Property  属性的名称,将要为该属性返回信息。
		Propert 的属性参数:
				Columnid 索引的key_id位置上的列ID
				Isdescending 存储索引列的顺序。1=降序,0=升序
例如:
		Use northwind
		Go
			Select indexkey_property(object_id(‘employees’,1,1,’columnid’)
19.	indexproperty  在给定表标识号、索引名称及属性的前提下,返回指定的索引属性值
原型:
		Indexproperty (table_id,index,property)
		参数说明:
				Table_id 是包含要为其提供索引属性信息的表或索引视图标识号的表达
式。Table_id的数据类型为int
				Index  一个包含索引的名称的表达式,将为该索引返回属性信息。
				Property 一个表达式,它包含将要返回的数据库属性的名称。
		Property属性的参数:
				
属性	描述
IndexDepth	索引的深度。 
返回索引所具有的级别数。
IndexFillFactor	索引指定自己的填充因子。 
返回创建索引或最后重建索引时使用的填充因子。
IndexID	指定表或索引视图上的索引的索引 ID。
IsAutoStatistics	索引是由 sp_dboption 的 auto create statistics 选项生成的。 
1 = True
0 = False
NULL = 无效的输入
IsClustered	索引是聚集的。 
1 = True
0 = False
NULL = 无效的输入
IsFulltextKey	索引是表的全文键。 
1 = True
0 = False
NULL = 无效的输入
IsHypothetical	索引是假设的,不能直接用作数据访问路径。假设的索引保留列级统计。 
1 = True
0 = False
NULL = 无效的输入
IsPadIndex	索引在每个内部节点上指定将要保持空闲的空间。 
1 = True
0 = False
NULL = 无效的输入
IsPageLockDisallowed	1 = 通过 sp_indexoption 禁用页锁定。
0 = 允许页锁定。
NULL = 无效的输入
IsRowLockDisallowed	1 = 通过 sp_indexoption 禁用行锁定。
0 = 允许行锁定。
NULL = 无效的输入。
IsStatistics	索引是由 CREATE STATISTICS 语句或由 sp_dboption 的 auto create statistics 选项创建的。对于列级统计,统计索引将用作占位符。 
1 = True
0 = False
NULL = 无效的输入
IsUnique	索引是唯一的。 
1 = True
0 = False
NULL = 无效的输入
	例如:
		Use northwind
		Go
			Select indexproperty(object_id(‘categories’),’pk_categories’,’ispadindex’)
20.	object_id  返回数据库对象标识号。
原型:
		Object_id(‘object’)
例如:	
		Use master
		Go
			Select object_id(‘northwind..employees’)
21.	object_name  返回数据库对象名。
原型:
		Object_name(object_id)
	例如:
		Use northwind
		Go
			Select table_catalog,table_name
			From information_schema.tables
			Where table_name = object_name(111770580711)
22.	objectproperty  返回当前数据库中对象的有关信息。
原型:
		Objectproperty(id,property)
参数说明:
			Id 一个表达式,包含当前数据库中某一个对象的ID。ID的数据类型为INT。
			Property 一个表达式,包含针对由ID指定的对象将要返回的信息。

	Property 属性值参数说明:
属性名称	对象类型	描述和返回的值
CnstIsClustKey	约束	带有聚集索引的主键。 
1 = True
0 = False
CnstIsColumn	约束	COLUMN 约束。 
1 = True
0 = False
CnstIsDeleteCascade	约束	带有 ON DELETE CASCADE 选项的外键约束。
CnstIsDisabled	约束	禁用的约束。 
1 = True
0 = False
CnstIsNonclustKey	约束	带有非聚集索引的主键。 
1 = True
0 = False
CnstIsNotTrusted	约束	启用约束时未检查现有行,所以可能不是所有行都受约束的控制。 
1 = True
0 = False
CnstIsNotRepl	约束	使用 NOT FOR REPLICATION 关键字定义约束。
CnstIsUpdateCascade	约束	带有 ON UPDATE CASCADE 选项的外键约束。
ExecIsAfterTrigger	触发器	AFTER 触发器。
ExecIsAnsiNullsOn	过程、触发器、视图	创建时的 ANSI_NULLS 设置。 
1 = True
0 = False
ExecIsDeleteTrigger	触发器	DELETE 触发器。 
1 = True
0 = False
ExecIsFirstDeleteTrigger	触发器	对表执行 DELETE 时触发的第一个触发器。
ExecIsFirstInsertTrigger	触发器	对表执行 INSERT 时触发的第一个触发器。
ExecIsFirstUpdateTrigger	触发器	对表执行 UPDATE 时触发的第一个触发器。
ExecIsInsertTrigger	触发器	INSERT 触发器。 
1 = True
0 = False
ExecIsInsteadOfTrigger	触发器	INSTEAD OF 触发器。
ExecIsLastDeleteTrigger	触发器	对表执行 DELETE 时触发的最后一个触发器。
ExecIsLastInsertTrigger	触发器	对表执行 INSERT 时触发的最后一个触发器。
ExecIsLastUpdateTrigger	触发器	对表执行 UPDATE 时触发的最后一个触发器。
ExecIsQuotedIdentOn	过程、触发器、视图	创建时的 QUOTED_IDENTIFIER 设置。 
1 = True
0 = False
ExecIsStartup	过程	启动过程。 
1 = True
0 = False
ExecIsTriggerDisabled	触发器	禁用的触发器。 
1 = True
0 = False
ExecIsUpdateTrigger	触发器	UPDATE 触发器。 
1 = True
0 = False
HasAfterTrigger	表,视图	表或视图具有 AFTER 触发器。 
1 = True
0 = False
HasInsertTrigger	表,视图	表或视图具有 INSERT 触发器。 
1 = True
0 = False
HasInsteadOfTrigger	表、视图	表或视图具有 INSTEAD OF 触发器。 
1 = True
0 = False
HasUpdateTrigger	表、视图	表或视图具有 UPDATE 触发器。 
1 = True
0 = False
IsAnsiNullsOn	函数、过程、表、触发器、视图	指定表的 ANSI NULLS 选项设置为 ON,表示所有与空值的比较都取值为 UNKNOWN。只要表存在,该设置就应用于表定义中的所有表达式,包括计算列和约束。 
1 = ON
0 = OFF
IsCheckCnst	任何	CHECK 约束。 
1 = True
0 = False
IsConstraint	任何	约束。 
1 = True
0 = False
IsDefault	任何	绑定的默认值。 
1 = True
0 = False
IsDefaultCnst	任何	DEFAULT 约束。 
1 = True
0 = False
IsDeterministic	函数、视图	函数的确定性属性。只适用于标量值及表值函数。 
1 = 可确定的
0 = 不可确定的
NULL = 不是标量值或表值函数,或者是无效的对象 ID。
IsExecuted	任何	指定执行该对象的方式(视图、过程或触发器)。 
1 = True
0 = False
IsExtendedProc	任何	扩展过程。 
1 = True
0 = False
IsForeignKey	任何	FOREIGN KEY 约束。 
1 = True
0 = False
IsIndexed	表、视图	带有索引的表或视图。
IsIndexable	表、视图	可以创建索引的表或视图。
IsInlineFunction	函数	内嵌函数。 
1 = 内嵌函数
0 = 非内嵌函数
NULL = 不是函数,或者是无效的对象 ID。
IsMSShipped	任何	在安装 Microsoft? SQL Server? 2000 的过程中创建的对象。 
1 = True
0 = False
IsPrimaryKey	任何	PRIMARY KEY 约束。 
1 = True
0 = False
IsProcedure	任何	过程。 
1 = True
0 = False
IsQuotedIdentOn	函数、过程、表、触发器、视图	指定表的被引用标识符设置为 ON,表示在表定义所涉及的所有表达式中,双引号标记分隔标识符。 
1 = ON
0 = OFF
IsReplProc	任何	复制过程。 
1 = True
0 = False
IsRule	任何	绑定的规则。 
1 = True
0 = False
IsScalarFunction	函数	标量值函数。 
1 = 标量值
0 = 表值
NULL = 不是函数,或者是无效的对象 ID。
IsSchemaBound	函数,视图	使用 SCHEMABINDING 创建的架构绑定函数或视图。 
1 = 架构绑定
0 = 非架构绑定
NULL = 不是函数或视图,或者是无效的对象 ID。
IsSystemTable	表	系统表。 
1 = True
0 = False
IsTable	表	表。 
1 = True
0 = False
IsTableFunction	函数	表值函数。 
1 = 表值
0 = 标量值
NULL = 不是函数,或者是无效的对象 ID。
IsTrigger	任何	触发器。 
1 = True
0 = False
IsUniqueCnst	任何	UNIQUE 约束。 
1 = True
0 = False
IsUserTable	表	用户定义的表。 
1 = True
0 = False
IsView	视图	视图。 
1 = True
0 = False
OwnerId	任何	对象的所有者。 
Nonnull = 对象所有者的数据库用户 ID。
NULL = 无效的输入。
TableDeleteTrigger	表	表有 DELETE 触发器。 
>1 = 给定类型的第一个触发器的 ID。
TableDeleteTriggerCount	表	表具有指定数目的 DELETE 触发器。 
>1 = 给定类型的第一个触发器的 ID。
NULL = 无效的输入。
TableFullTextBackgroundUpdateIndexOn	表	表已启用全文后台更新索引。 
1 = True
0 = False
TableFulltextCatalogId	表	表的全文索引数据所驻留的全文目录的 ID。 
Nonzero = 全文目录 ID,它与标识全文索引表中行的唯一索引相关。
0 = 表不是全文索引的。
TableFullTextChangeTrackingOn	表	表已启用全文更改跟踪。 
1 = True
0 = False
TableFulltextKeyColumn	表	与某个单列唯一索引相关联的列 ID,这个单列唯一索引参与全文索引定义。 
0 = 表不是全文索引的。
TableFullTextPopulateStatus	表	0 = 不填充
1 = 完全填充
2 = 增量填充
TableHasActiveFulltextIndex	表	表具有一个活动的全文索引。 
1 = True
0 = False
TableHasCheckCnst	表	表具有 CHECK 约束。 
1 = True
0 = False
TableHasClustIndex	表	表具有聚集索引。 
1 = True
0 = False
TableHasDefaultCnst	表	表具有 DEFAULT 约束。 
1 = True
0 = False
TableHasDeleteTrigger	表	表具有 DELETE 触发器。 
1 = True
0 = False
TableHasForeignKey	表	表具有 FOREIGN KEY 约束。 
1 = True
0 = False
TableHasForeignRef	表	表由 FOREIGN KEY 约束引用。 
1 = True
0 = False
TableHasIdentity	表	表具有标识列。 
1 = True
0 = False
TableHasIndex	表	表具有一个任何类型的索引。 
1 = True
0 = False
TableHasInsertTrigger	表	对象具有 Insert 触发器。 
1 = True
0 = False
NULL = 无效的输入。
TableHasNonclustIndex	表	表具有非聚集索引。 
1 = True
0 = False
TableHasPrimaryKey	表	表具有主键。 
1 = True
0 = False
TableHasRowGuidCol	表	对于 uniqueidentifier 列,表具有 ROWGUIDCOL。 
1 = True
0 = False
TableHasTextImage	表	表具有 text 列。 
1 = True
0 = False
TableHasTimestamp	表	表具有 timestamp 列。 
1 = True
0 = False
TableHasUniqueCnst	表	表具有 UNIQUE 约束。 
1 = True
0 = False
TableHasUpdateTrigger	表	对象具有 Update 触发器。 
1 = True
0 = False
TableInsertTrigger	表	表具有 INSERT 触发器。 
>1 = 给定类型的第一个触发器的 ID。
TableInsertTriggerCount	表	表具有指定数目的 INSERT 触发器。 
>1 = 给定类型的第一个触发器的 ID。
TableIsFake	表	表不是真实的。根据需要 SQL Server 对其进行内部具体化。 
1 = True
0 = False
TableIsPinned	表	驻留表以将其保留在数据高速缓存中。 
1 = True
0 = False
TableTextInRowLimit	表	text in row 所允许的最大字节数,如果没有设置 text in row 选项则为 0。
TableUpdateTrigger	表	表具有 UPDATE 触发器。 
>1 = 给定类型的第一个触发器的 ID。
TableUpdateTriggerCount	表	表具有指定数目的 UPDATE 触发器。 
>1 = 给定类型的第一个触发器的 ID。
	例如:
		Select objectproperty(object_id(‘employees’),’tabletextinrowlimit’)		
23.	@@procid  返回当前过程的存储过程标识符(ID)。
例如:
		Create procedure  testprocedure  as  //创建存储过程testprocedure  
		Select @@procid as ‘procid’   //列出存储的ID
		Go
		Exec testprocedure    //调用存储过程
		Go
24.	sql_variant_property  返回有关sql_variant值的基本数据类型的其他信息。
原型:
		Sql_variant_property (expression,property)
		参数说明:
				Expression  是sql_variant类型的表达式。
				Property  包含将为其提供信息的sql_variant属性名称。
	Property的参数说明:
值	描述	返回的 sql_variant 基本类型
BaseType	SQL Server 数据类型,如: 
char
int
money
nchar
ntext
numeric
nvarchar
real
smalldatetime
smallint
smallmoney
text
timestamp
tinyint
uniqueidentifier
varbinary
varchar	sysname 
无效的输入 = NULL
Precision	数字基本数据类型的位数: 
datetime = 23
smalldatetime = 16
float = 53
real = 24
decimal (p,s) and numeric (p,s) = p 
money = 19
smallmoney = 10
int = 10
smallint = 5
tinyint = 3
bit = 1
all other types = 0	int 
无效的输入 = NULL
Scale	数字基本数据类型小数点右边的位数: 
decimal (p,s) 和 numeric (p,s) = s
money 和 smallmoney = 4
datetime = 3
所有其它类型 = 0	int 
无效的输入 = NULL
TotalBytes	要包含值的元数据和数据所需的字节数。该信息在检查 sql_variant 列中数据的最大一侧时很有用。如果该值大于 900,索引创建将失败。	int 
无效的输入 = NULL
Collation	代表特定 sql_variant 值的排序规则。	sysname 
无效的输入 = NULL
MaxLength	最大数据类型长度(以字节为单位)。例如,nvarchar(50) 的 MaxLength 是 100,int 的 MaxLength 是 4。	int 
无效的输入 = NULL
例如:
		Create table tablea (cola sql_variant,colb int)  //创建表tablea
		Insert into tablea values(cast (462711.1 as decimal(18.2)),16811)  //插入一条记录
		Select  sql_variant_property(cola,’basetype’),  //检索有关值为462711.1的cola
				Sql_variant_property(cola,’precision’),  //sql_variant_property信息
				Sql_variant_property(cola,’scale’)  
		From tablea
		Where colb=1681
25.	typeproperty 返回有关数据类型的信息。
原型:
		Typeproperty(type,property)
Property 参数值说明:
属性	描述	返回的值
Precision	数据类型的精度。	数字位数或字符个数。 
NULL = 数据类型未找到。
Scale	数据类型的小数位数。	数据类型的小数位的个数。 
NULL = 数据类型不是 numeric 或未找到。
AllowsNull	数据类型允许空值。	1 = True
0 = False
NULL = 数据类型未找到。
UsesAnsiTrim	创建数据类型时 ANSI 填充设置为 ON。	1 = True
0 = False
NULL = 数据类型未找到,或不是二进制数据类型或字符串数据类型。
	例如:
		Select typeproperty(‘tinyint’,’precision’)







字符串函数																TOP
1.	ascii 返回字符表达式最左端字符的ASCII代码值。
例如:
		Set nocount on
			Declare @position int,@string char(15)
				Set @position = 1
				Set @string = ‘du monde entier’
				While @position <=datalength(@string)
				Begin 
				Select 
				Ascii(substring(@string,@position,1)),
				Char(Ascii(substring(@string,@position,1)))
				Set @position =@position+1
				End
				Set nocount off
				Go
2.	char  将int ascii代码转换为字符的字符串函数。
3.	charindex  返回字符串中指定表达式的起始位置。
原型:
	Charindex(expression1,expression2,[start_location])
	参数说明:
		Expression1 一个表达式,其中包含要寻找的字符的次序。
		Expression2 一个表达式,通常是一个用于指定序列的列。
		[start_logcation] 在expression2中搜索expression1时的起始字符位置。
例如:
	Use pubs
	Go
		Select charindex(‘wonderful’,notes)
			From titles
		Where title_id=’tc3218’
		Go
在使用[start_logcation]参数时要注意一点。它所能实现的功能是忽略前面的字符,从你给定的字符开始查找expression1在expression2中的位置。
例如:
	declare @t varchar(50)
set @t=&apos;ddfsadawfaafdadfa&apos;
--1
select charindex(&apos;a&apos;,@t,6)
--2
select charindex(&apos;a&apos;,@t,4)
		例1和例2的结果是不一样的。
4.	difference  比较两个字符串。
例如:
		Use pubs
		Go
			Select soundex(‘green’)
			Soundex(‘greene’),difference(‘green’,’greene’)
		Go
5.	left  返回从字符串左边开始指定个数的字符。
6.	len  返回字符串中字符的数量。
7.	lower  将大写字符数据转换为小写字符数据后返回字符表达式。
例如:
		Use pubs 
		Go	
		Select lower(substring(title,1,20)) as lower,
			 Lower(upper((substring(title,1,20))) as lowerupper
		From titles
		Where price between 11:00 and 20:00
8.	ltrim  删除字符串中的起始空格。
9.	rtrim  删除字符串中的末尾的空格。
例如:
	Declare @string_to_trim varchar(60)  //声明变量
	Set @string_to_trim = ‘    five spaces are at the beginning of this string’
									//变量赋值
	Select ‘here is the strng without the leading spaces: ’+ ltrim (@string_to_trim)
									//显示函数LTRIM执行结果
10.	nchar  根据unicode标准所进行的定义,用给定整数代码返回unicode字符。
例如:
	Declare @position int , @nstring nchar(9)  //声明局部变量
	Set @position = 1    //变量赋值
	Set @nstring = N’k&benhavn’
	Print ‘character #’ + ‘ ’ + ‘unicode character’ + ‘ ‘ + ‘unicode value’ //打印输出 
	While @position <= datalength(@nstring)  //循环判断执行
	Begin 
		Select @position ,    //显示函数nchar执行结果
		Nchar(unicode(substring(@nstring,@position,1))),
		Convert (nchar(17), substring(@nstring,@position,1)),
		Unicode(substring(@nstring,@position,1))
Select @position = @position+1
	End
	Go
11.	patindex  返回指定表达式中某模式第一次出现的位置;如果在全部有效的文本和字符
数据类型中没有找到该模式,则返回零。
	例如:
		Use pubs
		Go
		Select patindex(‘%wonderfull%’,notes)
		From totles
		Where totle_id=’tc3218’
		Go
12.	quotename  返回带有分隔符的unicode字符串
13.	replace  用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串
表达式。
	例如:
		Select replace (‘abcdefabcfvabcetil’,’abc’,’xxx’)
14.	replicate  以指定的次数重复字符表达式。
15.	reverse  返回字符天大的反转。
16.	right  返回字符串中从右边开始指定个数的integer_expression字符。
例如:
		Use pubs
		Go
		Select right(au_fname,5)
		From authors
		Order by au_fname
		Go
17.	soundex 返回由四个字符组成的代码,以评估两个字符串的相似性。
18.	space  返回由重复的空格组成的字符串。也可以向字符串中插入空格。
19.	str 由数字数据转换来的字符数据。
原型:
		Str (float_expression [, length,[decimal]])
		参数说明:
			Float_expression 是带有小数点的近似数字数据类型的表达式。
			Length  是总的长度。包括小数点、符号、数字或空格。
			Decimal  是小数点右边的位数。
20.	stuff  删除指定长度的字符并在指定的起始点插入另一组字符。
原型:
	Stuff(character_expression,start,length,character_expression)
例如:
	Select stuff(‘abcdefx’,1,2’bckjkjoui’)
21. substring 返回字符,binary,text或image表达式的一部分。
	原型:
		Substring(expression,start,length)
22. unicode 按照unicode标准的定义,返回输入表达式的第一个字符的整数值。
23. upper 返回将小写字符数据转换成大写的字符表达式。 








文本和图像函数															TOP
1.	patindex  返回指定表达式中某模式每一次出现的起始位置。详细参阅字符串函数中的
 patindex。
2.	textptr  以varbinary格式返回对应于text、ntext或image列的文本指针值。
原型:
		Textptr(column)
例如1:
		Use pubs
		Go
		Declare @ptval varbinary(16)
		Select @ptrval = textptr(logo)
		From pub_info pr,publishers p
		Where p.pub_id=pr.pub_id and p.pub_name=’new moon books’
		Go
例如2:
		Create table t1 (c1 int,c2 text)
		Exec sp_tableoption ‘t1’,’text in row’,’on’
		Insert t1 values(‘1’,’this is text.’)
		Go
		Begin tran 
		Declare @ptrval varbinary(16)
		Select @ptrval = textptr(c2)
		From t1 where c1=1
		Readtext t1.c2 @ptrval 0 1
		Commit
3.	textvald  一个text、ntext或image函数,用于检查给定文本指针是否有效。
原型:
		Textvald(‘table.column’,text_ptr)
例如:
		Use pubs
		Go
		Select pub_id,’valid (if 1) text data’= textvald(‘pub_info.log’,textptr(logo))
		From pub_info
Order by pub_id
Go









配置函数																TOP
1.	@@connections 返回上次启动sql server 以来连接或试图连接的次数。
2.	@@datefirst  返回set datefirst参数的当前值,setdatefirst参数指明所规定的每周第一天:
1对应星期一,2对应星期二。。。。。7对应星期日。
3.	@@dbts  为当前数据库返回当前timestamp数据类型的值。是数据库中唯一的值。
4.	@@langid  返回当前所使用语言的本地语言标识符(ID)。
5.	@@language  返回当前使用的语言名。
6.	@@lock_timeout  返回当前会话的当前锁超时设置,单位为毫秒。
7.	@@max_connections  批回microsoft sql server 上允许的同时用户连接的最大数。返回
的数不必为当前的配置的数值。
8.	@@max_precision  返回decimal 和 numeric数据类型所用的精度级别,即该服务器中
 当前设置的精度。
9.	@@nestlevel  返回当前存储过程执行的嵌套层次(初始值为0)。
10.	@@options  `返回当前set 选项的信息。
11.	@@remserver  当远程sql server数据库服务器在登录中出现时,返回它的名称。
12.	@@servername 返回运行microsoft sql server 的本地服务器名称。
13.	@@servicename  返回sql server正在运行的实例名。若当前实例为默认实例,则
@@servicename返回mssqlserver;否则返回当前实例名。
14.	@@spid  返回当前用户进程的服务器进程标识符(ID)。该结果与当时系统实际运行
 情况有关。
15.	@@textsize  返回set语句textsize选项的当前值,它指定select语句返回的text 或image
数据的最大长度,心字节为单位。
16.	@@service  返回sql server当前安装的日期、版本和处理类型。
例如:
	Use northwind
		Select @@service
上同:

















系统函数																TOP
1.	app_name  如果应用程序进行了设置,返回当前会话的应用程序名称。
例如:
		Use northwind 
		Go
		Declare @currentapp varchar(35)   //声明局部变量保存函数返回值
		Set @currentapp = app_name()   //调用函数返回当前应用程序的名称
		Select @currentapp  // 显示应用程序的名称
2.	case  计算条件列表并返回多个可能结果表达式之一。
数据原型:
		Case input_expression
			When  when_expression then result_expression
			[….n]
			Else else_result_expression
			End
3.	cast  将某种数据类型的表达式显式转换为另一种数据类型。
原型:
	Cast (expression as data_type)
4.	convert  将某种数据类型的表达式显式转换为另一种数据类型。
原形:
		Convert (data_type[(length)],expression [,style])
5.	coalesce  返回参数中第一个非空表达式。
例如:
	Use northwind
	Select cast(coalesce(region,companyname) as char) ‘companyregion’
	From suppliers
6.	collationproperty  返回给定排序规则的属性。
原型:
		Collationproperty (collation_name,property)
	例如:
		Use northwind
		Select  collationproperty(‘traditional_spanish_cs_as_ks_ws’,’codepage’)
7.	current_timestamp  返回当前的日期和时间。
8.	current_user  返回当前的用户名。
9.	datalength  返回任何表达式所占用的字节数。
10.	@@error  返回最后执行的transact-sql语句的错误代码。
例如:
		Use northwind 
		Declare @del_error int, @ins_error int  //声明局部变量保存函数返回结果
		Begin tran  //开始一个事务
		Delete shippers  //执行delete操作
		Where shippers=6  
		Select @del_error = @@error   //设置变量保存delete错误操作
		Insert into shippers(shipperid,companyname)  //执行insert操作
		Values(6,’microsoft’)
		Select @ins_error = @@error  设置变量保存insert操作错误
		If @del_error = 0 and @ins_error=0   //测试返回值
		Begin
		Print ‘the author information has been replaced’   //如果以上两个操作全部成功,
则提交事务。
		Commit tran
		End
		Else    //以上两操作失败
		Begin 
			If @del_error<>0    //判断是否delete操作失败
			Print ‘an error occurred during execution of the delete’  //打印输出信息
			If @ins_error <>0   //判断是否insert 操作失败
			Print ‘an error occurred during execution of the insert’  //打印输出信息
		Rollback tran   //事务回滚
		end
11.	fn_helpcollations  //返回sql server 2000支持的所有排序规则的列表。
例如:
	Use northwind
	Select * from ::fn_helpcollations  //显示函数返回的系统所有排序规则列表
12.	fn_serversshareddrives  返回由群集服务器使用共享驱动器名称。
13.	fn_virtualfilestats  返回对数据库文件(包括日志文件)的I/O统计。
原型:
		Fn_virtualfilestats([@databaseid=]databasei_d,[@fileid=] file_id) 
返回的参数说明: 
Column Name	数据类型	描述
DbId	smallint	数据库 ID
FileId	smallint	文件 ID
TimeStamp	int	提取数据的时间
NumberReads	bigint	在文件上发出的读取次数
NumberWrites	bigint	在文件上写入的次数
BytesRead	bigint	在文件上发出的读取字节数
BytesWritten	bigint	在文件上写入的字节数
IoStallMS	bigint	用户等待在文件上完成 I/O 活动的总计时间(以毫秒为单位)
例如:
		Use master
		Declare @dbid int
		Select @dbid=dbid from master..sysdatabases
			Where name=’northwind’

		Use northwind
		   Select * from ::fn_virtualfilestats(@dbid,1)
14.	formatmessage  从sysmessage 现有的消息构造消息。
原型:
		Formatmessage(msg_number,param_value [,….n])
	例如:
		Use master
		Exec sp_addmessage 50001,16,N’the number of rows in %s is %1d’,   //执行存储过
程,增加一条客户信息
		@lang = ‘us_english’
		Use northwind
		Declare @val varchar(100)   //声明变量保存返回值
		Set @val=formatmessage(50001,’table1’,5)  // 构造文本消息
		Select @val
15.	getansinull  返回会话的数据库的默认为空性。
原型:
		Getansinull([‘database’])
16.	host _id  返回工作站标识号。
17.	host_name 返回工作站名称。
原型:
		Host_name()
例如:
		Use northwind
			Select host_name()
18.	ident_current  返回任何会话和任何作用域中的指定表最后生成的标识值。
原型:
		Ident_current(‘table_name’)
	例如:
		Use northwind
		Select inde_current(‘shippers’)
19.	ident_incr  返回指定表或视图增量值(返回形式为numeric(@@maxpercision,0)),该值
是在带有标识列的表或视图中创建标识列是指定的。
	原型:
		Ident_incr(‘table_or_view’)
	例如:
		Use northwind
		Select ident_incr(‘shippers’)
20.	ident_seed  返回指定的表或视图增量值种子值(返回形式numeric(@@maxprcision,0)),
  该值是在带有标识列的表或视图中创建标识列是指定的。
21. @@identity  返回最后插入的标识值。
	例如:
		Use northwind
		Set identity_insert shippers on
		Insert into shippers (shipperid,companyname)
		Values(6,’microsoft’)
		Select @@identity  //显示返回最后插入的标识值
		Delete from shippers where shipperid=6
22 . identity  有在带有into table 子句的select 语句中,以将标识列插入到新表中。
原型:
	Identity(data_type  [, seed,increment])
例如:
	Use northwind
	Select productname, identity(smallint,100,1) as productID,unitprice
	Into test
	From products
	Drop table test
24.	isdate  确定输入表达式是否为有效的日期。
原型:
		Isdate(expression)
25.	isnull  使用指定的值替换null。
原型:
		Isnull(check_expression,replacement_value)
26.	newid  创建uniqueidentifier类型的唯一值。
Declare @myid uniqueidentifiler
Set @myid =newid()
Print ‘value of @myid is : ’+ convert(varchar(255),@myid)
27.	nullif  如果两个指定的表达式相等,则返回的是空值;如果不相等则返回第一个表达式。
原型:
		Nullif(expressiion,exprssion)
28.	parsename  返回对象的指定部分。
原型:
		Parsename(‘object_name’,object_piece)
参数说明:
Value	描述
1	对象名
2	所有者名称
3	数据库名称
4	服务器名称
例如:
Use northwind
Select parsename(‘pubs..products’,1) as ‘object name’
Select parsename(‘pubs..products’,2) as ‘object name’
Select parsename(‘pubs..products’,3) as ‘object name’
Select parsename(‘pubs..products’,4) as ‘object name’
29.	permissions  返回一个包含位图的值,表明当前用户的语句、对象或列的权限。
原型:
		Permissions([objectid[, ‘column]])
参数说明:
下表显示语句权限所使用的位(未指定 objectid)。
位(十进制)	位(十六进制)	语句权限
1	0x1	CREATE DATABASE(仅限于 master 数据库)
2	0x2	CREATE TABLE
4	0x4	CREATE PROCEDURE
8	0x8	CREATE VIEW
16	0x10	CREATE RULE
32	0x20	CREATE DEFAULT
64	0x40	BACKUP DATABASE
128	0x80	BACKUP LOG
256	0x100	保留

下表显示当仅指定 objectid 时,返回的对象权限所使用的位。
位(十进制)	位(十六进制)	语句权限
1	0x1	SELECT ALL
2	0x2	UPDATE ALL
4	0x4	REFERENCES ALL
8	0x8	INSERT
16	0x10	DELETE
32	0x20	EXECUTE(仅限于过程)
4096	0x1000	SELECT ANY(至少一列)
8192	0x2000	UPDATE ANY
16384	0x4000	REFERENCES ANY

下表显示当同时指定 objectid 和 column 时,返回的列级对象权限所使用的位。
位(十进制)	位(十六进制)	语句权限
1	0x1	SELECT
2	0x2	UPDATE
4	0x4	REFERENCES
例如:
		Use northwind
		If permissions()&2=2
		Begin 
			Print ‘the current user can create a table.’
			Create table test (coll int)
		End
		Else 
			Print ‘error :the current user cannot create a table.’
		Drop table test 
30.	@@rowcount  返回受上一语句影响的行数。
例如:
		Use northwind
		Set identity_insert shippers off
		Insert into shippers values(‘ibm’,null)
		Select @@rowcounat
		From shippers 
Delect from shippers where companyname = ‘ibm’
31.	rowcount_big  返回受执行的最后一个语句影响的行数。使用和@@rowcount一样。
32.	scope_identity  返回插入到同一作用域中的identity列中的最后一个identity值。
33.	serverproperty  返回有关服务器实例的属性信息。
34.	sessionproperty  返回会话的set 选项设置。
原型:
		Sessionproperty(option) 
Option参数:		
选项	描述
ANSI_NULLS	指定是否对空值上的等号 (=) 和不等号 (<>)应用遵从 SQL-92 标准行为。 
1 = ON
0 = OFF
ANSI_PADDING	控制列存储小于定义的列大小的值的方式,以及列存储在字符串和 binary 数据中有尾随空格的值的方式。 
1 = ON
0 = OFF
ANSI_WARNINGS	指定是否对某些情况(包括被零除和算术溢出)生成错误信息或警告应用 SQL-92 标准行为。 
1 = ON
0 = OFF
ARITHABORT	确定在执行查询过程中发生溢出或被零除的错误时是否终止查询。 
1 = ON
0 = OFF
CONCAT_NULL_YIELDS_
NULL	控制是将串联结果视为空值还是空字符串值。 
1 = ON
0 = OFF
NUMERIC_ROUNDABORT	指定当表达式中的四舍五入导致精度降低时是否生成错误信息和警告。 
1 = ON
0 = OFF
QUOTED_IDENTIFIER	指定是否遵从 SQL-92 关于使用引号分隔标识符和文字字符串的规则。 
1 = ON
0 = OFF
<任何其它字符串>	NULL = 无效的输入
35. session_user  允许在末指定默认值时,将系统为当前会话的用户名提供的值插入到表
中。还允许在查询、错误信息等中使用用户名。
	例如:
		Use northwind
		Declare @session_usr char(30)
		Set @session_usr = session_user
		Select ‘this session’’ s current user is : ’ + @session_usr
36.	stats_date  返回最后一次更新指定索引统计的日期。
例如:
		Use nortywind
		Create index ship_index1 on shippers(shipperid,companyname)
		Waitfor delay ’00:00:20’
		Drop index shippers.ship_index1
		Select ‘index name’=i.name, ‘statisticcs date ’= stats_date(i.id,i.indid)
		From sysobjects o ,sysindexes i
		Where o.name= ‘shippers’ and o.id=i.id
37.	system_user  返回登录标识名称。
38.	@@trancount  返回当前连接的活动事务数。
39.	user_name 返回给定标识号的用户数据库用户名。
例如:use nortywind
		Select user_name(2)
		Select user_name()
		Select name from sysusers where name=user_name(1)








































系统统计函数															TOP
1.	@@cpu_busy  返回自上次启动microsoft sql server 以来CUP的工作时间。
2.	@@idle  返回microsoft sql server 自上次启动后闲置的时间。
3.	@@io_busy  返回microsoft sql server 自上次启动后用于执行输入和输出操作的时间。
4.	@@packet_errors  返回microsoft sql server 自上次启动后,在microsoft sql server 连接
上发生的网络数据包错误数。
5.	@@pack_received  返回microsoft sql server 自上次启动后从网络上读取的输入数据包
数目
6.	@@pack_sent  返回sql server自上次启动后,写到网络上的输出数据包数目。
7.	@@timeticks  返回一刻度的微秒数。
8.	@@total_errors  返回sql server 自上次启动后,所遇到的磁盘读/写错误数。
9.	@@total_read  返回microsoft sql server 自上次启动后读取磁盘的次数。
10.	@@total_write 返回 microsoft sql server 自上次启动后写入磁盘的次数。































事务、游标、存储过程及触发器                                            TOP
事务的使用:
1.1	 begin distributed transaction  指定一个事务的起始。
原型:
		Begin destributed tran [ saction] [transaction_name! @tran_name_variable]
例如:
		Use northwind 
		Begin destributed transaction  //开始一个分布式事务
		Update empoyees       //对表empolees 进行更新
		Set firstname=’mcdonald’ where homephone = ‘(206) 555-9875’
		Commit transaction    //结束事务
		Go
1.0	 commit transcation 指明事务结束。
1.3	 rollback transcation  撒销对数据库作出的所有改变,返回到事务开始之前的状态。
原型:
		Rollback [tran [saction] [transaction_name] @tran_name_variable | savepoint_name |
@savepoint_variable]
	   参数说明:
		Transadtion 给begin transaction上的事务指派的名称。
		@tran_name_bariable  用户定义的、含有有效事务名称的变量名称。
		Savepoint_name  是来自SAVE TRANSACTION语句的svepoint_name。
		@savepoint_variable 是用户定义的、含有有效保存点名称的变量的名称。
	  例如:
		Begin transaction royaltychange  //事务开始
		Update titleauthor  //更新表
			Set royaltyper = 65   //重设参数
			From titleauthor,titles 
			Where royaltyper=75 
				And titleauthor.title_id=titles.title_id
				And title=’The Gourmet Microwave’
		Update titleauthor
			Set royaltype = 15
			From titleauthor, titles
			Where royaltyper=25
			And titleauthor.title_id=titles.title_id
			And title = ‘The Gourmet Microwave’
		Save transaction percentchanged  //在事务内设置保存点
		Update titles 
			Set price = price* 1.1
			Where title =’The Gourmet Microwave’
		Select (price * royalty * ytd_sales)* royaltyper
			From titles,titleauthor
			Where title=’The Gourmet Microwave’
			And titles.title_id=titleauthor.title_id
		Rollback transaction percentchanged  //回到先前保存过的保存点
		Commit transaction   // 事务结束
1.4	save transaction  在事务内设置保存点。
1.5	commit work  标志事务的结束。
1.6	rollback work  将用户的事务回滚到事务的起点。
游标的使用:
2.1	declare cursor  定义游标结构并分配资源。
原型:
	Declate cursor_name [insensitive] [scorll] cursor for select_statement [for { read  
Only | update }[of  column _list]] 
			或者:
			Declare cursor_name cursor [local | global] [forward_only | scroll] [static | keyset |
dynamic] [read_only | scroll_locks | optimistic] for [select _statement
[ for {read only | update } [of column_list]]]
		参数说明:
		INSENSITIVE  指明要为检索到的结果集建立一个临时拷贝,以后的数据从这个
临时拷贝中获取。原有基表中数据发生了改变,对于游标而言是
不可见的。这种不敏感的游标不允许数据更改。
		SCROLL  指明游标可以在任意方向上滚动。忽略该选项,则游标只能向前滚动。
		SELECT_SATAEMENT  指明SQL语句建立的结果集。
		READ ONLY  指明在游标结果集中不允许进行数据更改。
		UPDATE  指明游标结果集可以进行修改。
		OF COLUMN_LIST  指明结果集中可以进行修改的列。缺省时(使用UPDATE关
键字),所有的列都可进行修改。
		LOCAL  指明游标是局部的,只能在它所声明的过程中使用。全局的游标在连接
激活的任何时候都是可用的。只有池连接结束时,才不再可用。
		GLOBAL 使用游标对于整个连接全局可见。
		FORWARD_ONLY  指明游标只能向前滚动。
		STATIC  与INSENITIVE的游标相同。
		KEYSET  指明选取的行的顺序。
		DYNAMIC  指明游标反映所有对结果集的修改。
		SCROLL_LOCK  对修改或删除加锁。保证游标操作成功。
		OPTIMISTIC  指明哪些通过游标进行的修改或者删除将不会成功。
	例如:
		Use northwind 
		Go 
		Declare customers_cursor cursor    //定义游标
		For select companyname , address,phone  //选择部分属性
		From customers 
		Where city=’london’
		For read only  //只读游标
		Deallocate customers_cursor   //删除游标
2.2	deallocate  删除游标定义,释放资源。
2.3	open  打开游标。
原型:
	Open { { [global]  cursor_name } | cursor_variable_name }
	例如:
		Use northwind 
		Go
		Declare employee_cursor cursor for   //定义游标
		Select lastname,firstname 
		From northwind .dbo.employees 
Where firstname like ‘m%’
Open employee_cursor   // 打开游标
Fetch next from employee_cursor   //利用游标提取数据
While @@fetch_status=0   //当利用FETCH提取数据成功时,运用循环提取下一
条数据
Begin   //循环体开始处
	Fetch next from employee_cursor
End    //循环体结束
close employee_cursor    //关闭游标
Deallocate employee_cursor   // 释放游标
2.4  close  关闭游标并释放结果集。
2.5  fetch  通过游标从结果集中取值。
	 原型:
		Fetch [next | prior | first | last | absolute {n | @nvar} | relative {n | @nvar}] from [global]
			 Cursor_name} | cursor_variable_name } [into @variable_name ] [,……n]
	参数说明:
		NEXT  指明从当前的行的下一行取值。
		PRIOR  指明人当前行的前一行取值。
		FIRST  结果集的第一行。
		LAST   结果集的最后一行。
		ABSOLUTE  n表示结果集中的第n行。该行数同样可以通过一个局部变量传播。
		RELATIVE  n表示要取出折行在当前的前n行或后n行的位置上。如果该值为正
数则要取出的行在当前行前n行的位置上,如果该值为负数,则返回
当前行的后n行。
		INTO @cursor_variable_name  表示游标列值存储的地方的变量列表。变量的数据
类型也应该与被选择列的数据类型相同。直到下一
次使用FETCH语句之前,变量中的值都会一直保
持。
	函数返回值:
		利用@@FETCH_STATUS返回FETCH状态。
		0:FETCH 成功。
		1:FETCH 失败或超出设置范围。
		2:提取的数据行丢失。
	例如:
		Open employee_cursor
		Fetch next from employee_cursor
		While @@fetch_status = 0 
		Begin 
		Fetch next from employee_cursor
		End 	
		Close employee_curssor
存储过程的使用:
3.1	create procedure  创建存储过程。
原型:
		Create proc [edure] procedure_name [; number]
		[{@parameter data_type} [varying] [ = default] [output]] [,…n]
		[ with {recomple | enplication | recompile , encryption }] [for replication]
		As sql_statement […n]
	参数说明:
		Procedure_name  新存储的过程。对于数据库及其所有者必须惟一。创建局部临时
						过程,在procedure_nameu前加一个编号符#;创建全局临时过
						程,在procedure_nameu前加两个编号符##。完整的名称不能超
						过128个字符。
		Number  对同名的过程分组。
		@parameter  过程中的参数。
		Data_type  参数的数据类型。除table之外的其他所有数据类型均可以用伯存储过
程的参数。Cursor数据类型只能用于output参数。
		

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值