转自http://blog.163.com/sdq_1314/blog/static/16690825420106268545147/

SQL Server 返回最后插入记录的自动编号ID

最近在开发项目的过程中遇到这么一个问题,就是在插入一条记录的后立即获取其在数据库中自增的ID,以便处理相关联的数据,怎么做?在sql server 2000中可以这样做,有几种方式。详细请看下面的讲解与对比。

一、要获取此ID,最简单的方法就是:(以下举一简单实用的例子)

--创建数据库和表
create database MyDataBase
use MyDataBase
create table mytable
(
id int identity(1,1),
name varchar(20)
)
--执行这个SQL,就能查出来刚插入记录对应的自增列的值
insert into mytable values('李四')
select @@identity

二、三种方式的比较

SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值
SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

例如,有两个表 T1 和 T2,在 T1 上定义了一个 INSERT 触发器。当将某行插入 T1 时,触发器被激发,并在 T2 中插入一行。此例说明了两个作用域:一个是在 T1 上的插入,另一个是作为触发器的结果在 T2 上的插入。

假设 T1 和 T2 都有 IDENTITY 列,@@IDENTITY 和 SCOPE_IDENTITY 将在 T1 上的 INSERT 语句的最后返回不同的值。

@@IDENTITY 返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值,该值是插入 T2 中的值。

SCOPE_IDENTITY() 返回插入 T1 中的 IDENTITY 值,该值是发生在相同作用域中的最后一个 INSERT。如果在作用域中发生插入语句到标识列之前唤醒调用 SCOPE_IDENTITY() 函数,则该函数将返回 NULL 值。

而IDENT_CURRENT('T1') 和 IDENT_CURRENT('T2') 返回的值分别是这两个表最后自增的值。
ajqc的实验:(40条本地线程,40+40条远程线程同时并发测试,插入1200W行),得出的结论是:
1.在典型的级联应用中.不能用@@IDENTITY,在CII850,256M SD的机器上1W多行时就会并发冲突.在P42.8C,512M DDR上,才6000多行时就并发冲突.
2.SCOPE_IDENTITY()是绝对可靠的,可以用在存储过程中,连触发器也不用建,没并发冲突
SELECT   IDENT_CURRENT('TableName')   --返回指定表中生成的最后一个标示值   
SELECT   IDENT_INCR('TableName')--返回指定表的标示字段增量值
SELECT   IDENT_SEED('TableName')--返回指定表的标示字段种子值

返回最后插入记录的自动编号
SELECT IDENT_CURRENT('TableName')
返回下一个自动编号:   
SELECT   IDENT_CURRENT('TableName')   +   (SELECT   IDENT_INCR('TableName'))
SELECT @@IDENTITY --返回当前会话所有表中生成的最后一个标示值
geovindu
2009-1-8 12:18:54
0.把长日期转换为短日期   Convert(char(10),getdate(),120) 
    1.按姓氏笔画排序:
SQL Server 返回最后插入记录的自动编号IDSelect * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 
SQL Server 返回最后插入记录的自动编号ID2.数据库加密:
SQL Server 返回最后插入记录的自动编号IDselect encrypt('原始密码')
SQL Server 返回最后插入记录的自动编号IDselect pwdencrypt('原始密码')
SQL Server 返回最后插入记录的自动编号IDselect pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')
SQL Server 返回最后插入记录的自动编号IDselect pwdencrypt('原始密码')
SQL Server 返回最后插入记录的自动编号IDselect pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
SQL Server 返回最后插入记录的自动编号ID3.取回表中字段:
SQL Server 返回最后插入记录的自动编号IDdeclare @list varchar(1000),@sql nvarchar(1000) 
SQL Server 返回最后插入记录的自动编号IDselect @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
SQL Server 返回最后插入记录的自动编号IDset @sql='select '+right(@list,len(@list)-1)+' from 表A' 
SQL Server 返回最后插入记录的自动编号IDexec (@sql)
SQL Server 返回最后插入记录的自动编号ID4.查看硬盘分区:
SQL Server 返回最后插入记录的自动编号IDEXEC master..xp_fixeddrives
SQL Server 返回最后插入记录的自动编号ID5.比较A,B表是否相等:
SQL Server 返回最后插入记录的自动编号IDif (select checksum_agg(binary_checksum(*)) from A)
SQL Server 返回最后插入记录的自动编号ID=
SQL Server 返回最后插入记录的自动编号ID(select checksum_agg(binary_checksum(*)) from B)
SQL Server 返回最后插入记录的自动编号IDprint '相等'
SQL Server 返回最后插入记录的自动编号IDelse
SQL Server 返回最后插入记录的自动编号IDprint '不相等'
SQL Server 返回最后插入记录的自动编号ID6.杀掉所有的事件探察器进程:
SQL Server 返回最后插入记录的自动编号IDDECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
SQL Server 返回最后插入记录的自动编号IDWHERE program_name IN('SQL profiler',N'SQL 事件探查器')
SQL Server 返回最后插入记录的自动编号IDEXEC sp_msforeach_worker '?'
SQL Server 返回最后插入记录的自动编号ID7.记录搜索:
SQL Server 返回最后插入记录的自动编号ID开头到N条记录
SQL Server 返回最后插入记录的自动编号IDSelect Top N * From 表
SQL Server 返回最后插入记录的自动编号ID-------------------------------
SQL Server 返回最后插入记录的自动编号IDN到M条记录(要有主索引ID)
SQL Server 返回最后插入记录的自动编号IDSelect Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
SQL Server 返回最后插入记录的自动编号ID----------------------------------
SQL Server 返回最后插入记录的自动编号IDN到结尾记录
SQL Server 返回最后插入记录的自动编号IDSelect Top N * From 表 Order by ID Desc
SQL Server 返回最后插入记录的自动编号ID8.如何修改数据库的名称:
SQL Server 返回最后插入记录的自动编号IDsp_renamedb 'old_name', 'new_name' 
SQL Server 返回最后插入记录的自动编号ID9:获取当前数据库中的所有用户表
SQL Server 返回最后插入记录的自动编号IDselect Name from sysobjects where xtype='u' and status>=0
SQL Server 返回最后插入记录的自动编号ID10:获取某一个表的所有字段
SQL Server 返回最后插入记录的自动编号IDselect name from syscolumns where id=object_id('表名')
SQL Server 返回最后插入记录的自动编号ID11:查看与某一个表相关的视图、存储过程、函数
SQL Server 返回最后插入记录的自动编号IDselect a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
SQL Server 返回最后插入记录的自动编号ID12:查看当前数据库中所有存储过程
SQL Server 返回最后插入记录的自动编号IDselect name as 存储过程名称 from sysobjects where xtype='P'
SQL Server 返回最后插入记录的自动编号ID13:查询用户创建的所有数据库
SQL Server 返回最后插入记录的自动编号IDselect * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
SQL Server 返回最后插入记录的自动编号ID或者
SQL Server 返回最后插入记录的自动编号IDselect dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
SQL Server 返回最后插入记录的自动编号ID14:查询某一个表的字段和数据类型
SQL Server 返回最后插入记录的自动编号IDselect column_name,data_type from information_schema.columns
SQL Server 返回最后插入记录的自动编号IDwhere table_name = '表名' 
SQL Server 返回最后插入记录的自动编号ID[n].[标题]:
SQL Server 返回最后插入记录的自动编号IDSelect * From TableName Order By CustomerName 
SQL Server 返回最后插入记录的自动编号ID[n].[标题]:
SQL Server 返回最后插入记录的自动编号ID来自http://dev.csdn.net/develop/article/83/83138.shtm

一、 只复制一个表结构,不复制数据

 SQL Server 返回最后插入记录的自动编号IDselect top 0 * into [t1] from [t2]

二、 获取数据库中某个对象的创建脚本

1、 先用下面的脚本创建一个函数

<div><div>SQL Server 返回最后插入记录的自动编号IDif exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunction')=0)
SQL Server 返回最后插入记录的自动编号ID drop function fgetscript
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDcreate function fgetscript(
SQL Server 返回最后插入记录的自动编号ID @servername varchar(50)     --服务器名
SQL Server 返回最后插入记录的自动编号ID ,@userid varchar(50)='sa'    --用户名,如果为nt验证方式,则为空
SQL Server 返回最后插入记录的自动编号ID ,@password varchar(50)=''    --密码
SQL Server 返回最后插入记录的自动编号ID ,@databasename varchar(50)    --数据库名称
SQL Server 返回最后插入记录的自动编号ID ,@objectname varchar(250)    --对象名
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID) returns varchar(8000)
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDbegin
SQL Server 返回最后插入记录的自动编号ID declare @re varchar(8000)        --返回脚本
SQL Server 返回最后插入记录的自动编号ID declare @srvid int,@dbsid int       --定义服务器、数据库集id
SQL Server 返回最后插入记录的自动编号ID declare @dbid int,@tbid int        --数据库、表id
SQL Server 返回最后插入记录的自动编号ID declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--创建sqldmo对象
SQL Server 返回最后插入记录的自动编号ID exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--连接服务器
SQL Server 返回最后插入记录的自动编号ID if isnull(@userid,'')='' --如果是 Nt验证方式
SQL Server 返回最后插入记录的自动编号ID begin
SQL Server 返回最后插入记录的自动编号ID  exec @err=sp_oasetproperty @srvid,'loginsecure',1
SQL Server 返回最后插入记录的自动编号ID  if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  exec @err=sp_oamethod @srvid,'connect',null,@servername
SQL Server 返回最后插入记录的自动编号ID end
SQL Server 返回最后插入记录的自动编号ID else
SQL Server 返回最后插入记录的自动编号ID  exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--获取数据库集
SQL Server 返回最后插入记录的自动编号ID exec @err=sp_oagetproperty @srvid,'databases',@dbsid output
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--获取要取得脚本的数据库id
SQL Server 返回最后插入记录的自动编号ID exec @err=sp_oamethod @dbsid,'item',@dbid output,@databasename
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--获取要取得脚本的对象id
SQL Server 返回最后插入记录的自动编号ID exec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectname
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--取得脚本
SQL Server 返回最后插入记录的自动编号ID exec @err=sp_oamethod @tbid,'script',@re output
SQL Server 返回最后插入记录的自动编号ID if @err<>0 goto lberr
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID --print @re
SQL Server 返回最后插入记录的自动编号ID return(@re)
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDlberr:
SQL Server 返回最后插入记录的自动编号ID exec sp_oageterrorinfo NULL, @src out, @desc out 
SQL Server 返回最后插入记录的自动编号ID declare @errb varbinary(4)
SQL Server 返回最后插入记录的自动编号ID set @errb=cast(@err as varbinary(4))
SQL Server 返回最后插入记录的自动编号ID exec master..xp_varbintohexstr @errb,@re out
SQL Server 返回最后插入记录的自动编号ID set @re='错误号: '+@re
SQL Server 返回最后插入记录的自动编号ID   +char(13)+'错误源: '+@src
SQL Server 返回最后插入记录的自动编号ID   +char(13)+'错误描述: '+@desc
SQL Server 返回最后插入记录的自动编号ID return(@re)
SQL Server 返回最后插入记录的自动编号IDend
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID</div></div>

2、 用法如下
用法如下,

<div><div>SQL Server 返回最后插入记录的自动编号IDprint dbo.fgetscript('服务器名','用户名','密码','数据库名','表名或其它对象名')
SQL Server 返回最后插入记录的自动编号ID</div></div>

3、 如果要获取库里所有对象的脚本,如如下方式

<div><div>SQL Server 返回最后插入记录的自动编号IDdeclare @name varchar(250)
SQL Server 返回最后插入记录的自动编号IDdeclare #aa cursor for
SQL Server 返回最后插入记录的自动编号ID select name from sysobjects where xtype not in('S','PK','D','X','L')
SQL Server 返回最后插入记录的自动编号IDopen #aa
SQL Server 返回最后插入记录的自动编号IDfetch next from #aa into @name
SQL Server 返回最后插入记录的自动编号IDwhile @@fetch_status=0
SQL Server 返回最后插入记录的自动编号IDbegin
SQL Server 返回最后插入记录的自动编号ID print dbo.fgetscript('onlytiancai','sa','sa','database',@name)
SQL Server 返回最后插入记录的自动编号ID fetch next from #aa into @name
SQL Server 返回最后插入记录的自动编号IDend
SQL Server 返回最后插入记录的自动编号IDclose #aa
SQL Server 返回最后插入记录的自动编号IDdeallocate #aa
SQL Server 返回最后插入记录的自动编号ID</div></div>

4、 声明,此函数是csdn邹建邹老大提供的
三、 分隔字符串
如果有一个用逗号分割开的字符串,比如说"a,b,c,d,1,2,3,4",如何用t-sql获取这个字符串有几个元素,获取第几个元素的值是多少呢?因为t-sql里没有split函数,也没有数组的概念,所以只能自己写几个函数了。
1、 获取元素个数的函数

<div><div>SQL Server 返回最后插入记录的自动编号IDcreate function getstrarrlength (@str varchar(8000))
SQL Server 返回最后插入记录的自动编号IDreturns int
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDbegin
SQL Server 返回最后插入记录的自动编号ID  declare @int_return int
SQL Server 返回最后插入记录的自动编号ID  declare @start int
SQL Server 返回最后插入记录的自动编号ID  declare @next int
SQL Server 返回最后插入记录的自动编号ID  declare @location int
SQL Server 返回最后插入记录的自动编号ID  select @str =','+ @str +','
SQL Server 返回最后插入记录的自动编号ID  select @str=replace(@str,',,',',')
SQL Server 返回最后插入记录的自动编号ID  select @start =1
SQL Server 返回最后插入记录的自动编号ID  select @next =1 
SQL Server 返回最后插入记录的自动编号ID  select @location = charindex(',',@str,@start)
SQL Server 返回最后插入记录的自动编号ID  while (@location <>0)
SQL Server 返回最后插入记录的自动编号ID  begin
SQL Server 返回最后插入记录的自动编号ID    select @start = @location +1
SQL Server 返回最后插入记录的自动编号ID    select @location = charindex(',',@str,@start)
SQL Server 返回最后插入记录的自动编号ID    select @next =@next +1
SQL Server 返回最后插入记录的自动编号ID  end
SQL Server 返回最后插入记录的自动编号ID select @int_return = @next-2
SQL Server 返回最后插入记录的自动编号ID return @int_return
SQL Server 返回最后插入记录的自动编号IDend
SQL Server 返回最后插入记录的自动编号ID</div></div>

2、 获取指定索引的值的函数

<div><div>SQL Server 返回最后插入记录的自动编号IDcreate function getstrofindex (@str varchar(8000),@index int =0)
SQL Server 返回最后插入记录的自动编号IDreturns varchar(8000)
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDbegin
SQL Server 返回最后插入记录的自动编号ID  declare @str_return varchar(8000)
SQL Server 返回最后插入记录的自动编号ID  declare @start int
SQL Server 返回最后插入记录的自动编号ID  declare @next int
SQL Server 返回最后插入记录的自动编号ID  declare @location int
SQL Server 返回最后插入记录的自动编号ID  select @start =1
SQL Server 返回最后插入记录的自动编号ID  select @next =1 --如果习惯从0开始则select @next =0
SQL Server 返回最后插入记录的自动编号ID  select @location = charindex(',',@str,@start)
SQL Server 返回最后插入记录的自动编号ID  while (@location <>0 and @index > @next )
SQL Server 返回最后插入记录的自动编号ID  begin
SQL Server 返回最后插入记录的自动编号ID    select @start = @location +1
SQL Server 返回最后插入记录的自动编号ID    select @location = charindex(',',@str,@start)
SQL Server 返回最后插入记录的自动编号ID    select @next =@next +1
SQL Server 返回最后插入记录的自动编号ID  end
SQL Server 返回最后插入记录的自动编号ID  if @location =0 select @location =len(@str)+1 --如果是因为没有逗号退出,则认为逗号在字符串后
SQL Server 返回最后插入记录的自动编号ID  select @str_return = substring(@str,@start,@location -@start) --@start肯定是逗号之后的位置或者就是初始值1
SQL Server 返回最后插入记录的自动编号ID  if (@index <> @next ) select @str_return = '' --如果二者不相等,则是因为逗号太少,或者@index小于@next的初始值1。
SQL Server 返回最后插入记录的自动编号ID  return @str_return
SQL Server 返回最后插入记录的自动编号IDend
SQL Server 返回最后插入记录的自动编号ID</div></div>

3、 测试

<div><div>SQL Server 返回最后插入记录的自动编号IDSELECT [dbo].[getstrarrlength]('1,2,3,4,a,b,c,d')
SQL Server 返回最后插入记录的自动编号IDSELECT [dbo].[getstrofindex]('1,2,3,4,a,b,c,d',5)
SQL Server 返回最后插入记录的自动编号ID</div></div>

四、 一条语句执行跨越若干个数据库
我要在一条语句里操作不同的服务器上的不同的数据库里的不同的表,怎么办呢?
第一种方法:

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from OPENDATASOURCE('SQLOLEDB','Data Source=远程ip;User ID=sa;Password=密码').库名.dbo.表名
SQL Server 返回最后插入记录的自动编号ID</div></div>

第二种方法:
先使用联结服务器:

<div><div>SQL Server 返回最后插入记录的自动编号IDEXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
SQL Server 返回最后插入记录的自动编号IDexec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
SQL Server 返回最后插入记录的自动编号IDGO
SQL Server 返回最后插入记录的自动编号ID</div></div>

然后你就可以如下:

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from 别名.库名.dbo.表名
SQL Server 返回最后插入记录的自动编号IDinsert 库名.dbo.表名 select * from 别名.库名.dbo.表名
SQL Server 返回最后插入记录的自动编号IDselect * into 库名.dbo.新表名 from 别名.库名.dbo.表名
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID</div></div>

五、 怎样获取一个表中所有的字段信息
蛙蛙推荐:怎样获取一个表中所有字段的信息
先创建一个视图

<div><div>SQL Server 返回最后插入记录的自动编号IDCreate view fielddesc    
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDselect o.name as table_name,c.name as field_name,t.name as type,c.length as 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDlength,c.isnullable as isnullable,convert(varchar(30),p.value) as desp 
SQL Server 返回最后插入记录的自动编号IDfrom syscolumns c  
SQL Server 返回最后插入记录的自动编号IDjoin systypes t on c.xtype = t.xusertype
SQL Server 返回最后插入记录的自动编号IDjoin sysobjects o on o.id=c.id 
SQL Server 返回最后插入记录的自动编号IDleft join    sysproperties p on p.smallid=c.colid and p.id=o.id    
SQL Server 返回最后插入记录的自动编号IDwhere o.xtype='U'
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID</div></div>

查询时:

<div><div>SQL Server 返回最后插入记录的自动编号IDSelect * from fielddesc where table_name = '你的表名'</div></div>

 

还有个更强的语句,是邹建写的,也写出来吧

<div><div>SQL Server 返回最后插入记录的自动编号IDSELECT 
SQL Server 返回最后插入记录的自动编号ID (case when a.colorder=1 then d.name else '' end) N'表名',
SQL Server 返回最后插入记录的自动编号ID a.colorder N'字段序号',
SQL Server 返回最后插入记录的自动编号ID a.name N'字段名',
SQL Server 返回最后插入记录的自动编号ID (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
SQL Server 返回最后插入记录的自动编号ID (case when (SELECT count(*)
SQL Server 返回最后插入记录的自动编号ID FROM sysobjects
SQL Server 返回最后插入记录的自动编号ID WHERE (name in
SQL Server 返回最后插入记录的自动编号ID           (SELECT name
SQL Server 返回最后插入记录的自动编号ID          FROM sysindexes
SQL Server 返回最后插入记录的自动编号ID          WHERE (id = a.id) AND (indid in
SQL Server 返回最后插入记录的自动编号ID                    (SELECT indid
SQL Server 返回最后插入记录的自动编号ID                   FROM sysindexkeys
SQL Server 返回最后插入记录的自动编号ID                   WHERE (id = a.id) AND (colid in
SQL Server 返回最后插入记录的自动编号ID                             (SELECT colid
SQL Server 返回最后插入记录的自动编号ID                            FROM syscolumns
SQL Server 返回最后插入记录的自动编号ID                            WHERE (id = a.id) AND (name = a.name))))))) AND
SQL Server 返回最后插入记录的自动编号ID        (xtype = 'PK'))>0 then '√' else '' end) N'主键',
SQL Server 返回最后插入记录的自动编号ID b.name N'类型',
SQL Server 返回最后插入记录的自动编号ID a.length N'占用字节数',
SQL Server 返回最后插入记录的自动编号ID COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
SQL Server 返回最后插入记录的自动编号ID isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
SQL Server 返回最后插入记录的自动编号ID (case when a.isnullable=1 then '√'else '' end) N'允许空',
SQL Server 返回最后插入记录的自动编号ID isnull(e.text,'') N'默认值',
SQL Server 返回最后插入记录的自动编号ID isnull(g.[value],'') AS N'字段说明'
SQL Server 返回最后插入记录的自动编号ID--into ##tx
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDFROM  syscolumns  a left join systypes b 
SQL Server 返回最后插入记录的自动编号IDon  a.xtype=b.xusertype
SQL Server 返回最后插入记录的自动编号IDinner join sysobjects d 
SQL Server 返回最后插入记录的自动编号IDon a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'
SQL Server 返回最后插入记录的自动编号IDleft join syscomments e
SQL Server 返回最后插入记录的自动编号IDon a.cdefault=e.id
SQL Server 返回最后插入记录的自动编号IDleft join sysproperties g
SQL Server 返回最后插入记录的自动编号IDon a.id=g.id AND a.colid = g.smallid  
SQL Server 返回最后插入记录的自动编号IDorder by object_name(a.id),a.colorder
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID</div></div>

六、 时间格式转换问题
因为新开发的软件需要用一些旧软件生成的一些数据,在时间格式上不统一,只能手工转换,研究了一下午写了三条语句,以前没怎么用过convert函数和case语句,还有"+"操作符在不同上下文环境也会起到不同的作用,把我搞晕了要,不过现在看来是差不多弄好了。

1、把所有"70.07.06"这样的值变成"1970-07-06"

<div><div>SQL Server 返回最后插入记录的自动编号IDUPDATE lvshi
SQL Server 返回最后插入记录的自动编号IDSET shengri = '19' + REPLACE(shengri, '.', '-')
SQL Server 返回最后插入记录的自动编号IDWHERE (zhiyezheng = '139770070153')</div></div>

 

2、在"1970-07-06"里提取"70","07","06"

<div><div>SQL Server 返回最后插入记录的自动编号IDSELECT SUBSTRING(shengri, 3, 2) AS year, SUBSTRING(shengri, 6, 2) AS month, 
SQL Server 返回最后插入记录的自动编号ID      SUBSTRING(shengri, 9, 2) AS day
SQL Server 返回最后插入记录的自动编号IDFROM lvshi
SQL Server 返回最后插入记录的自动编号IDWHERE (zhiyezheng = '139770070153')
SQL Server 返回最后插入记录的自动编号ID</div></div>

3、把一个时间类型字段转换成"1970-07-06"

<div><div>SQL Server 返回最后插入记录的自动编号IDUPDATE lvshi
SQL Server 返回最后插入记录的自动编号IDSET shenling = CONVERT(varchar(4), YEAR(shenling)) 
SQL Server 返回最后插入记录的自动编号ID      + '-' + CASE WHEN LEN(MONTH(shenling)) = 1 THEN '0' + CONVERT(varchar(2), 
SQL Server 返回最后插入记录的自动编号ID      month(shenling)) ELSE CONVERT(varchar(2), month(shenling)) 
SQL Server 返回最后插入记录的自动编号ID      END + '-' + CASE WHEN LEN(day(shenling)) = 1 THEN '0' + CONVERT(char(2), 
SQL Server 返回最后插入记录的自动编号ID      day(shenling)) ELSE CONVERT(varchar(2), day(shenling)) END
SQL Server 返回最后插入记录的自动编号IDWHERE (zhiyezheng = '139770070153')
SQL Server 返回最后插入记录的自动编号ID</div></div>

七、 分区视图
分区视图是提高查询性能的一个很好的办法

<div><div>SQL Server 返回最后插入记录的自动编号ID--看下面的示例
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--示例表
SQL Server 返回最后插入记录的自动编号IDcreate table tempdb.dbo.t_10(
SQL Server 返回最后插入记录的自动编号IDid int primary key check(id between 1 and 10),name varchar(10))
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDcreate table pubs.dbo.t_20(
SQL Server 返回最后插入记录的自动编号IDid int primary key check(id between 11 and 20),name varchar(10))
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号IDcreate table northwind.dbo.t_30(
SQL Server 返回最后插入记录的自动编号IDid int primary key check(id between 21 and 30),name varchar(10))
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--分区视图
SQL Server 返回最后插入记录的自动编号IDcreate view v_t
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDselect * from tempdb.dbo.t_10
SQL Server 返回最后插入记录的自动编号IDunion all
SQL Server 返回最后插入记录的自动编号IDselect * from pubs.dbo.t_20
SQL Server 返回最后插入记录的自动编号IDunion all
SQL Server 返回最后插入记录的自动编号IDselect * from northwind.dbo.t_30
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--插入数据
SQL Server 返回最后插入记录的自动编号IDinsert v_t select 1 ,'aa'
SQL Server 返回最后插入记录的自动编号IDunion  all select 2 ,'bb'
SQL Server 返回最后插入记录的自动编号IDunion  all select 11,'cc'
SQL Server 返回最后插入记录的自动编号IDunion  all select 12,'dd'
SQL Server 返回最后插入记录的自动编号IDunion  all select 21,'ee'
SQL Server 返回最后插入记录的自动编号IDunion  all select 22,'ff'
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--更新数据
SQL Server 返回最后插入记录的自动编号IDupdate v_t set name=name+'_更新' where right(id,1)=1
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--删除测试
SQL Server 返回最后插入记录的自动编号IDdelete from v_t where right(id,1)=2
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--显示结果
SQL Server 返回最后插入记录的自动编号IDselect * from v_t
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--删除测试
SQL Server 返回最后插入记录的自动编号IDdrop table northwind.dbo.t_30,pubs.dbo.t_20,tempdb.dbo.t_10
SQL Server 返回最后插入记录的自动编号IDdrop view v_t
SQL Server 返回最后插入记录的自动编号ID
</div></div>


八、 树型的实现
SQL Server 返回最后插入记录的自动编号ID

<div><div>SQL Server 返回最后插入记录的自动编号ID--参考
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--树形数据查询示例
SQL Server 返回最后插入记录的自动编号ID--作者: 邹建
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--示例数据
SQL Server 返回最后插入记录的自动编号IDcreate table [tb]([id] int identity(1,1),[pid] int,name varchar(20))
SQL Server 返回最后插入记录的自动编号IDinsert [tb] select 0,'中国'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 0,'美国'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 0,'加拿大'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 1,'北京'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 1,'上海'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 1,'江苏'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 6,'苏州'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 7,'常熟'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 6,'南京'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 6,'无锡'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 2,'纽约'
SQL Server 返回最后插入记录的自动编号IDunion  all  select 2,'旧金山'
SQL Server 返回最后插入记录的自动编号IDgo
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID--查询指定id的所有子
SQL Server 返回最后插入记录的自动编号IDcreate function f_cid(
SQL Server 返回最后插入记录的自动编号ID@id int
SQL Server 返回最后插入记录的自动编号ID)returns @re table([id] int,[level] int)
SQL Server 返回最后插入记录的自动编号IDas
SQL Server 返回最后插入记录的自动编号IDbegin
SQL Server 返回最后插入记录的自动编号ID declare @l int
SQL Server 返回最后插入记录的自动编号ID set @l=0
SQL Server 返回最后插入记录的自动编号ID insert @re select @id,@l
SQL Server 返回最后插入记录的自动编号ID while @@rowcount>0
SQL Server 返回最后插入记录的自动编号ID begin
SQL Server 返回最后插入记录的自动编号ID  set @l=@l+1
SQL Server 返回最后插入记录的自动编号ID  insert @re select a.[id],@l
SQL Server 返回最后插入记录的自动编号ID  from [tb] a,@re b
SQL Server 返回最后插入记录的自动编号ID  where a.[pid]=b.[id] and b.[level]=@l-1
SQL Server 返回最后插入记录的自动编号ID end
</div></div>

 

九、 排序问题

<div><div>SQL Server 返回最后插入记录的自动编号IDCREATE TABLE [t] (
SQL Server 返回最后插入记录的自动编号ID [id] [int] IDENTITY (1, 1) NOT NULL ,
SQL Server 返回最后插入记录的自动编号ID [GUID] [uniqueidentifier] NULL 
SQL Server 返回最后插入记录的自动编号ID) ON [PRIMARY]
SQL Server 返回最后插入记录的自动编号IDGO</div></div>


下面这句执行5次

<div><div>SQL Server 返回最后插入记录的自动编号IDinsert t values (newid())</div></div>


查看执行结果

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t</div></div>


1、 第一种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t
SQL Server 返回最后插入记录的自动编号ID order by case id when 4 then 1
SQL Server 返回最后插入记录的自动编号ID                  when 5 then 2
SQL Server 返回最后插入记录的自动编号ID                  when 1 then 3
SQL Server 返回最后插入记录的自动编号ID                  when 2 then 4
SQL Server 返回最后插入记录的自动编号ID                  when 3 then 5 end</div></div>


2、 第二种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t order by (id+2)%6</div></div>


3、 第三种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t order by charindex(cast(id as varchar),'45123')</div></div>


4、 第四种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t
SQL Server 返回最后插入记录的自动编号IDWHERE id between 0 and 5
SQL Server 返回最后插入记录的自动编号IDorder by charindex(cast(id as varchar),'45123')</div></div>


5、 第五种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t order by case when id >3 then id-5 else id end</div></div>


6、 第六种

<div><div>SQL Server 返回最后插入记录的自动编号IDselect * from t order by id / 4 desc,id asc</div></div>

 

十、 一条语句删除一批记录
首先id列是int标识类类型,然后删除ID值为5,6,8,9,10,11的列,这里的cast函数不能用convert函数代替,而且转换的类型必须是varchar,而不能是char,否则就会执行出你不希望的结果,这里的"5,6,8,9,10,11"可以是你在页面上获取的一个chkboxlist构建成的值,然后用下面的一句就全部删
除了,比循环用多条语句高效吧应该。

<div><div>SQL Server 返回最后插入记录的自动编号IDdelete from [fujian] where charindex(','+cast([id] as varchar)+',',','+'5,6,8,9,10,11,'+',')>0</div></div>


还有一种就是

<div><div>SQL Server 返回最后插入记录的自动编号IDdelete from table1 where id in(1,2,3,4 SQL Server 返回最后插入记录的自动编号ID)</div></div>


十一、获取子表内的一列数据的组合字符串
下面这个函数获取05年已经注册了的某个所的律师,唯一一个参数就是事务所的名称,然后返回zhuce字段里包含05字样的所有律师。

<div><div>SQL Server 返回最后插入记录的自动编号IDCREATE   FUNCTION fn_Get05LvshiNameBySuo  (@p_suo Nvarchar(50))
SQL Server 返回最后插入记录的自动编号IDRETURNS Nvarchar(2000)
SQL Server 返回最后插入记录的自动编号IDAS
SQL Server 返回最后插入记录的自动编号IDBEGIN  
SQL Server 返回最后插入记录的自动编号ID DECLARE @LvshiNames varchar(2000), @name varchar(50)
SQL Server 返回最后插入记录的自动编号ID select @LvshiNames=''
SQL Server 返回最后插入记录的自动编号ID DECLARE lvshi_cursor CURSOR FOR</div></div>
数据库里有1,2,3,4,5 共5条记录,要用一条sql语句让其排序,使它排列成4,5,1,2,3,怎么写?

--数据操作 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
SELECT --从数据库表中检索数据行和列 
SQL Server 返回最后插入记录的自动编号ID
      INSERT --向数据库表添加新数据行 
SQL Server 返回最后插入记录的自动编号ID
      DELETE --从数据库表中删除数据行 
SQL Server 返回最后插入记录的自动编号ID
      UPDATE --更新数据库表中的数据 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--数据定义 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
CREATE TABLE --创建一个数据库表 
SQL Server 返回最后插入记录的自动编号ID
      DROP TABLE --从数据库中删除表 
SQL Server 返回最后插入记录的自动编号ID
      ALTER TABLE --修改数据库表结构 
SQL Server 返回最后插入记录的自动编号ID
      CREATE VIEW --创建一个视图 
SQL Server 返回最后插入记录的自动编号ID
      DROP VIEW --从数据库中删除视图 
SQL Server 返回最后插入记录的自动编号ID
      CREATE INDEX --为数据库表创建一个索引 
SQL Server 返回最后插入记录的自动编号ID
      DROP INDEX --从数据库中删除索引 
SQL Server 返回最后插入记录的自动编号ID
      CREATE PROCEDURE --创建一个存储过程 
SQL Server 返回最后插入记录的自动编号ID
      DROP PROCEDURE --从数据库中删除存储过程 
SQL Server 返回最后插入记录的自动编号ID
      CREATE TRIGGER --创建一个触发器 
SQL Server 返回最后插入记录的自动编号ID
      DROP TRIGGER --从数据库中删除触发器 
SQL Server 返回最后插入记录的自动编号ID
      CREATE SCHEMA --向数据库添加一个新模式 
SQL Server 返回最后插入记录的自动编号ID
      DROP SCHEMA --从数据库中删除一个模式 
SQL Server 返回最后插入记录的自动编号ID
      CREATE DOMAIN --创建一个数据值域 
SQL Server 返回最后插入记录的自动编号ID
      ALTER DOMAIN --改变域定义 
SQL Server 返回最后插入记录的自动编号ID
      DROP DOMAIN --从数据库中删除一个域 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--数据控制 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
GRANT --授予用户访问权限 
SQL Server 返回最后插入记录的自动编号ID
      DENY --拒绝用户访问 
SQL Server 返回最后插入记录的自动编号ID
      REVOKE --解除用户访问权限 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--事务控制 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
COMMIT --结束当前事务 
SQL Server 返回最后插入记录的自动编号ID
      ROLLBACK --中止当前事务 
SQL Server 返回最后插入记录的自动编号ID
      SET TRANSACTION --定义当前事务数据访问特征 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--程序化SQL 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
DECLARE --为查询设定游标 
SQL Server 返回最后插入记录的自动编号ID
      EXPLAN --为查询描述数据访问计划 
SQL Server 返回最后插入记录的自动编号ID
      OPEN --检索查询结果打开一个游标 
SQL Server 返回最后插入记录的自动编号ID
      FETCH --检索一行查询结果 
SQL Server 返回最后插入记录的自动编号ID
      CLOSE --关闭游标 
SQL Server 返回最后插入记录的自动编号ID
      PREPARE --为动态执行准备SQL 语句 
SQL Server 返回最后插入记录的自动编号ID
      EXECUTE --动态地执行SQL 语句 
SQL Server 返回最后插入记录的自动编号ID
      DESCRIBE --描述准备好的查询   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
---局部变量 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
declare @id char(10
SQL Server 返回最后插入记录的自动编号ID      
--set @id = '10010001' 
SQL Server 返回最后插入记录的自动编号ID
      select @id = '10010001'   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
---全局变量 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
---必须以@@开头   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--IF ELSE 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
declare @x int @y int @z int 
SQL Server 返回最后插入记录的自动编号ID      
select @x = 1 @y = 2 @z=3 
SQL Server 返回最后插入记录的自动编号ID      
if @x > @y 
SQL Server 返回最后插入记录的自动编号ID       
print 'x > y' --打印字符串'x > y' 
SQL Server 返回最后插入记录的自动编号ID
      else if @y > @z 
SQL Server 返回最后插入记录的自动编号ID       
print 'y > z' 
SQL Server 返回最后插入记录的自动编号ID      
else print 'z > y' 
SQL Server 返回最后插入记录的自动编号ID      
--CASE 
SQL Server 返回最后插入记录的自动编号ID
      use pangu 
SQL Server 返回最后插入记录的自动编号ID      
update employee 
SQL Server 返回最后插入记录的自动编号ID      
set e_wage = 
SQL Server 返回最后插入记录的自动编号ID       
case 
SQL Server 返回最后插入记录的自动编号ID       
when job_level = ’1’ then e_wage*1.08 
SQL Server 返回最后插入记录的自动编号ID       
when job_level = ’2’ then e_wage*1.07 
SQL Server 返回最后插入记录的自动编号ID       
when job_level = ’3’ then e_wage*1.06 
SQL Server 返回最后插入记录的自动编号ID       
else e_wage*1.05 
SQL Server 返回最后插入记录的自动编号ID       
end 
SQL Server 返回最后插入记录的自动编号ID      
--WHILE CONTINUE BREAK 
SQL Server 返回最后插入记录的自动编号ID
      declare @x int @y int @c int 
SQL Server 返回最后插入记录的自动编号ID      
select @x = 1 @y=1 
SQL Server 返回最后插入记录的自动编号ID      
while @x < 3 
SQL Server 返回最后插入记录的自动编号ID       
begin 
SQL Server 返回最后插入记录的自动编号ID       
print @x --打印变量x 的值 
SQL Server 返回最后插入记录的自动编号ID
       while @y < 3 
SQL Server 返回最后插入记录的自动编号ID       
begin 
SQL Server 返回最后插入记录的自动编号ID       
select @c = 100*@x + @y 
SQL Server 返回最后插入记录的自动编号ID       
print @c --打印变量c 的值 
SQL Server 返回最后插入记录的自动编号ID
       select @y = @y + 1 
SQL Server 返回最后插入记录的自动编号ID       
end 
SQL Server 返回最后插入记录的自动编号ID       
select @x = @x + 1 
SQL Server 返回最后插入记录的自动编号ID       
select @y = 1 
SQL Server 返回最后插入记录的自动编号ID       
end 
SQL Server 返回最后插入记录的自动编号ID      
--WAITFOR 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
--例 等待1 小时2 分零3 秒后才执行SELECT 语句 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
waitfor delay ’01:02:03’ 
SQL Server 返回最后插入记录的自动编号ID      
select * from employee 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID    
--例 等到晚上11 点零8 分后才执行SELECT 语句 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID    
waitfor time ’23:08:00’ 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID
SELECT   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
select *(列名) from table_name(表名) where column_name operator value ex宿主) 
SQL Server 返回最后插入记录的自动编号ID     
select * from stock_information where stockid = str(nid) 
SQL Server 返回最后插入记录的自动编号ID     stockname 
= 'str_name' 
SQL Server 返回最后插入记录的自动编号ID     stockname 
like '% find this %' 
SQL Server 返回最后插入记录的自动编号ID     stockname 
like '[a-zA-Z]%' --------- ([]指定值的范围) 
SQL Server 返回最后插入记录的自动编号ID
     stockname like '[^F-M]%' --------- (^排除指定范围) 
SQL Server 返回最后插入记录的自动编号ID
     --------- 只能在使用like关键字的where子句中使用通配符) 
SQL Server 返回最后插入记录的自动编号ID
     or stockpath = 'stock_path' 
SQL Server 返回最后插入记录的自动编号ID     
or stocknumber < 1000 
SQL Server 返回最后插入记录的自动编号ID     
and stockindex = 24 
SQL Server 返回最后插入记录的自动编号ID     
not stocksex = 'man' 
SQL Server 返回最后插入记录的自动编号ID     stocknumber 
between 20 and 100 
SQL Server 返回最后插入记录的自动编号ID     stocknumber 
in(10,20,30
SQL Server 返回最后插入记录的自动编号ID     
order by stockid desc(asc--------- 排序,desc-降序,asc-升序 
SQL Server 返回最后插入记录的自动编号ID
     order by 1,2 --------- by列号 
SQL Server 返回最后插入记录的自动编号ID
     stockname = (select stockname from stock_information where stockid = 4
SQL Server 返回最后插入记录的自动编号ID     
--------- 子查询 
SQL Server 返回最后插入记录的自动编号ID
     --------- 除非能确保内层select只返回一个行的值 
SQL Server 返回最后插入记录的自动编号ID
     --------- 否则应在外层where子句中用一个in限定符 
SQL Server 返回最后插入记录的自动编号ID
     select distinct column_name form table_name 
SQL Server 返回最后插入记录的自动编号ID   
--------- distinct指定检索独有的列值,不重复 
SQL Server 返回最后插入记录的自动编号ID
     select stocknumber ,"stocknumber + 10= stocknumber + 10 from table_name 
SQL Server 返回最后插入记录的自动编号ID     
select stockname , "stocknumber" = count(*from table_name group by stockname 
SQL Server 返回最后插入记录的自动编号ID     
--------- group by 将表按行分组,指定列中有相同的值 
SQL Server 返回最后插入记录的自动编号ID
     having count(*= 2 --------- having选定指定的组 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
select * 
SQL Server 返回最后插入记录的自动编号ID     
from table1, table2 
SQL Server 返回最后插入记录的自动编号ID
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示 
SQL Server 返回最后插入记录的自动编号ID
     table1.id =* table2.id -------- 右外部连接 
SQL Server 返回最后插入记录的自动编号ID
     select stockname from table1 
SQL Server 返回最后插入记录的自动编号ID     
union [all] -------- union合并查询结果集,all-保留重复行 
SQL Server 返回最后插入记录的自动编号ID
     select stockname from table2  
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
insert  
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx" 
SQL Server 返回最后插入记录的自动编号ID   value (
select Stockname , Stocknumber from Stock_table2) 
SQL Server 返回最后插入记录的自动编号ID   
-------value为select语句   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
update   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
update table_name set Stockname = "xxx" [where Stockid = 3] 
SQL Server 返回最后插入记录的自动编号ID   Stockname 
= default 
SQL Server 返回最后插入记录的自动编号ID   Stockname 
= null 
SQL Server 返回最后插入记录的自动编号ID   Stocknumber 
= Stockname + 4   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
delete   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID   
delete from table_name where Stockid = 3 
SQL Server 返回最后插入记录的自动编号ID   
truncate table_name --------- 删除表中所有行,仍保持表的完整性 
SQL Server 返回最后插入记录的自动编号ID
   drop table table_name --------- 完全删除表  
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
alter table -------- 修改数据库表结构   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
alter table database.owner.table_name add column_name char(2null .. 
SQL Server 返回最后插入记录的自动编号ID   sp_help table_name 
-------- 显示表已有特征 
SQL Server 返回最后插入记录的自动编号ID
   create table table_name (name char(20), age smallint, lname varchar(30)) 
SQL Server 返回最后插入记录的自动编号ID   
insert into table_name select -------- 实现删除列的方法(创建新表) 
SQL Server 返回最后插入记录的自动编号ID
   alter table table_name drop constraint Stockname_default 
SQL Server 返回最后插入记录的自动编号ID   
--------- 删除Stockname的default约束 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID常用函数(
function)   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID    转换函数
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID    
convert(数据类型,值,格式)
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  统计函数 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
AVG --求平均值 
SQL Server 返回最后插入记录的自动编号ID
  COUNT --统计数目 
SQL Server 返回最后插入记录的自动编号ID
  MAX --求最大值 
SQL Server 返回最后插入记录的自动编号ID
  MIN --求最小值 
SQL Server 返回最后插入记录的自动编号ID
  SUM --求和  
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
AVG 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
use pangu 
SQL Server 返回最后插入记录的自动编号ID  
select avg(e_wage) as dept_avgWage 
SQL Server 返回最后插入记录的自动编号ID  
from employee 
SQL Server 返回最后插入记录的自动编号ID  
group by dept_id   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
MAX 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
--求工资最高的员工姓名 
SQL Server 返回最后插入记录的自动编号ID
  use pangu 
SQL Server 返回最后插入记录的自动编号ID  
select e_name 
SQL Server 返回最后插入记录的自动编号ID  
from employee 
SQL Server 返回最后插入记录的自动编号ID  
where e_wage = 
SQL Server 返回最后插入记录的自动编号ID   (
select max(e_wage) 
SQL Server 返回最后插入记录的自动编号ID   
from employee)   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
STDEV() 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
--STDEV()函数返回表达式中所有数据的标准差 
SQL Server 返回最后插入记录的自动编号ID
  --STDEVP() 
SQL Server 返回最后插入记录的自动编号ID
  --STDEVP()函数返回总体标准差   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
VAR() 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
--VAR()函数返回表达式中所有值的统计变异数   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  
VARP() 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
--VARP()函数返回总体变异数   
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  算术函数   
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  三角函数 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
SIN(float_expression) --返回以弧度表示的角的正弦 
SQL Server 返回最后插入记录的自动编号ID
  COS(float_expression) --返回以弧度表示的角的余弦 
SQL Server 返回最后插入记录的自动编号ID
  TAN(float_expression) --返回以弧度表示的角的正切 
SQL Server 返回最后插入记录的自动编号ID
  COT(float_expression) --返回以弧度表示的角的余切 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  反三角函数 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角 
SQL Server 返回最后插入记录的自动编号ID
  ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角 
SQL Server 返回最后插入记录的自动编号ID
  ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角 
SQL Server 返回最后插入记录的自动编号ID
  ATAN2(float_expression1,float_expression2) 
SQL Server 返回最后插入记录的自动编号ID   
------返回正切是float_expression1 /float_expres-sion2的以弧度表示的角 
SQL Server 返回最后插入记录的自动编号ID
  DEGREES(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID   
------把弧度转换为角度返回与表达式相同的数据类型可为 
SQL Server 返回最后插入记录的自动编号ID
   ------INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  RADIANS(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
------把角度转换为弧度返回与表达式相同的数据类型可为 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID   
------INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  EXP(float_expression) --返回表达式的指数值 
SQL Server 返回最后插入记录的自动编号ID
  LOG(float_expression) --返回表达式的自然对数值 
SQL Server 返回最后插入记录的自动编号ID
  LOG10(float_expression)--返回表达式的以10 为底的对数值 
SQL Server 返回最后插入记录的自动编号ID
  SQRT(float_expression) --返回表达式的平方根 
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID  取近似值函数 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
CEILING(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
-------返回>=表达式的最小整数返回的数据类型与表达式相同可为 
SQL Server 返回最后插入记录的自动编号ID
   -------INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  FLOOR(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
-------返回<=表达式的最小整数返回的数据类型与表达式相同可为 
SQL Server 返回最后插入记录的自动编号ID
   -------INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  ROUND(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
-------返回以integer_expression 为精度的四舍五入值返回的数据 
SQL Server 返回最后插入记录的自动编号ID
   -------类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  ABS(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
-------返回表达式的绝对值返回的数据类型与表达式相同可为 
SQL Server 返回最后插入记录的自动编号ID
   -------INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  SIGN(numeric_expression) 
SQL Server 返回最后插入记录的自动编号ID
-------测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 
SQL Server 返回最后插入记录的自动编号ID
   -------与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 
SQL Server 返回最后插入记录的自动编号ID
  PI() -------返回值为π 即3.1415926535897936 
SQL Server 返回最后插入记录的自动编号ID
  RAND([integer_expression]
SQL Server 返回最后插入记录的自动编号ID
-------用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
SQL Server 返回最后插入记录的自动编号ID

SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID字符串函数 
SQL Server 返回最后插入记录的自动编号ID
SQL Server 返回最后插入记录的自动编号ID  
ASCII() ------函数返回字符表达式最左端字符的ASCII 码值 
SQL Server 返回最后插入记录的自动编号ID
  CHAR() ------函数用于将ASCII 码转换为字符 
SQL Server 返回最后插入记录的自动编号ID
   ------如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 
SQL Server 返回最后插入记录的自动编号ID
  LOWER() ------函数把字符串全部转换为小写 
SQL Server 返回最后插入记录的自动编号ID
  UPPER() ------函数把字符串全部转换为大写 
SQL Server 返回最后插入记录的自动编号ID
  STR() ------函数把数值型数据转换为字符型数据 
SQL Server 返回最后插入记录的自动编号ID
  LTRIM() ------函数把字符串头部的空格去掉 
SQL Server 返回最后插入记录的自动编号ID
  RTRIM() ------函数把字符串尾部的空格去掉 
SQL Server 返回最后插入记录的自动编号ID
  LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串 
SQL Server 返回最后插入记录的自动编号ID
  CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置 
SQL Server 返回最后插入记录的自动编号ID
  SOUNDEX() ------函数返回一个四位字符码 
SQL Server 返回最后插入记录的自动编号ID
   ------SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 
SQL Server 返回最后插入记录的自动编号ID
  DIFFERENCE() ------函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 
SQL Server 返回最后插入记录的自动编号ID
   ------0 两个SOUNDEX 函数返回值的第一个字符不同 
SQL Server 返回最后插入记录的自动编号ID
   ------1 两个SOUNDEX 函数返回值的第一个字符相同 
SQL Server 返回最后插入记录的自动编号ID
   ------2 两个SOUNDEX 函数返回值的第一二个字符相同 
SQL Server 返回最后插入记录的自动编号ID
   ------3 两个SOUNDEX 函数返回值的第一二三个字符相同 
SQL Server 返回最后插入记录的自动编号ID
   ------4 两个SOUNDEX 函数返回值完全相同同 
SQL Server 返回最后插入记录的自动编号ID
  QUOTENAME() ------函数返回被特定字符括起来的字符串 
SQL Server 返回最后插入记录的自动编号ID

转自

相关文章: