发新话题
打印

MS SQL入门基础(19):字符串函数(五)

MS SQL入门基础(19):字符串函数(五)

例4-80:  
  
  ·DATALENGTH()
  DATALENGTH() 函数语法如下:
  DATALENGTH (<expression>)
  DATALENGTH() 函数返回数据表达式的数据的实际长度。其返回值类型为INT。DATALENGTH() 函数对VARCHAR、 VARBINARY、 TEXT、 IMAGE、 NVARCHAR和NTEX 等能存储变动长度数据的数据类型特别实用。NULL 的长度为NULL。
  例4-81:
  
  · DB_ID()
  DB_ID() 函数语法如下:
  DB_ID (['database_name'])
  DB_ID() 函数返回数据库的编号。其返回值为SMALLINT 类型。如果没有指定database_name, 则返回当前数据库的编号。
  例4-82:
  
  
  ·DB_NAME()
  DB_NAME() 函数语法如下:
  DB_NAME (database_id)
  DB_NAME() 函数返回数据库的名称.其返回值类型为NVARCHAR (128). database_id是SMALLINT 类型的数据.如果没有指定database_id, 则返回当前数据库的名称.
  例4-83:
  · FORMATMESSAGE()
  FORMATMESSAGE() 函数语法如下:
  FORMATMESSAGE (<message_number>, <param_value>[, ...n])
  FORMATMESSAGE() 函数用于从系统信息表sysmessages 中挑选一条现存的信息,
  再将其格式转换为用户需要的形式.其功能类似于RAISERROR 命令,不同的是RAISERROR命令立即打印出信息,而FORMATMESSAGE() 函数返回编辑过的信息给调用它的程序.其返回值类型为NVARCHAR.
  其中message_number 是存储在sysmessages 系统表中的信息ID 号.param_value 是在信息中使用的参数.最多可使用20 个参数.
  FORMATMESSAGE() 函数查找使用当前语言平台语言的信息,如果没有本地语言的信息,则使用U.S. English 版本语言的信息.
  例4-84: 假定有一个编号为10001 的信息存储在sysmessages 表中,此信息的内容为"The Length of rows %column_name in %table_name is %column_num.".FORMATMESSAGE() 函数用值myColumn、 myTable 和20 分别替代上述参数值,将结果存储在变量@test1 中.程序如下:
  declare @test1 varchar (100)
  select @test1 = formatmessage (10001, 'myColumn', 'myTable', 20)
  ·GETANSINULL()
  GETANSINULL() 函数语法如下:
  GETANSINULL() (['database_name'])
  GETANSINULL() 函数返回当前数据库默认的NULL 值.其返回值类型为INT.GETANSINULL() 函数对ANSI 空值NULL 返回1; 如果没有定义ANSI 空值,则返回0.
  例4-85:
  select getansinull ('pangu')
  运行结果如下:
  ------
  1
  ·HOST_ID()
  HOST_ID() 函数语法如下:HOST_ID()
  HOST_ID() 函数返回服务器计算机的名称.其返回值类型为NCHAR.
  例4-86:
  declare @hostID char (8)
  select @hostID = host_id()
  print @hostID
  运行结果如下:
  -606771
  ·HOST_NAME()
  HOST_NAME() 函数语法如下:
  HOST_NAME()
  HOST_NAME() 函数返回服务器端计算机的名称.其返回值类型为CHAR (8).
  例4-87:
  declare @hostNAME nchar (20)
  select @hostNAME = host_name()
  print @hostNAME
  运行结果如下:
  XUJIN
  ·IDENTITY()
  IDENTITY() 函数语法如下:
  IDENTITY (<data_type>[, seed, increment]) [AS column_name])
  IDENTITY() 函数只在SELECT...INTO 语句中使用,用于插入一个identity column列到新表中.其返回值类型与data_type 的类型相同.
  其中:
  data_type 指定数据类型.data type 是INTEGER 或DECIMAL 类的数据类型.Seed指定identity column 的初值,即第一个值.Increment 指定增加一个记录时,记录的identity column 值应在前记录的基础上增加的值.seed 和increment 的缺省值为1.column_name 是所插入的identity column 的列名.虽然AS column_name 为可选项,但由于函数在表中插入了一个新列,所以必须指定列名.如果不使用AS column_name 选项,可以使用以下两种方式来指定列名:
  (1) select identity (int, 1, 1) as column_name
  into newtable
  from oldtable
  (2) select column_name = identity (int, 1, 1)
  into newtable
  from oldtable
  有关identity column 的信息,请参见"管理数据库表"中的"列属性"章节.

TOP

发新话题