SQLServer中的循环批处理
SQLServer中的循环批处理
GO命令后面加一个常量就可以了
下面方法可以用来快速生成一批数据
if (object_id ('t' ) is not null ) drop table t
go
create table t (id int identity (1 , 1 ), name varchar (40 ))
go
insert into t (name ) select newid ()
go 10
select * from t
/*
1 18C1C418-9029-4599-8D5E-616354A113C8
2 A0FE1177-09D8-4C56-9FB5-C2FAFF0155CF
3 9033E8BB-B9A4-4A08-83D8-40064AB68C5F
4 A179A300-E30B-42BF-974E-50928EB7DCF1
5 C1D36D3B-C4D7-431B-8C81-95C9EF9061A0
6 8A99066A-7993-4C06-9763-482C0BF5E687
7 2F0664A8-F91D-4BDE-BA0B-48624137B7CA
8 74C3FED3-6182-4ED9-9BFE-9C3DEC662F35
9 4E7A8CC8-D7CE-4A0D-8562-688FB3F91458
10 EC82BD91-20B3-46C1-B7CC-C4A8A9099376
*/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinjazz/archive/2009/08/12/4440209.aspx
相关文档:
sqlserver2005有关键字ntile(x)和over(partition by.. order by..)子句配合.
比如获取每个表的前10%个字段。
select id , name , colid , rn from (
select * , rn = ntile (10 )
over (partition by id order by colorder )
from syscolumns )t where rn = 1 ......
可以用扩展存储过程xp_dirtree获取文件列表,用openrowset倒入数据到二进制字段。
openrowset的用法可以参考msdn
http://technet.microsoft.com/zh-cn/library/ms190312.aspx
如果文件很多,建议还是用程序倒入了
if (object_id ('t_bulkResult' ) is not null )
drop table t_bulkResult ......
如何在一个没有主键的表中获取第n行数据,在sql2005中可以用row_number,但是必须指定排序列,否则你就不得不用select into来过渡到临时表并增加一个排序字段。
用游标的fetch absolute语句可以获取绝对行数下的某行数据,测试代码如下:
set nocount on
--建立测试环境并插入数据,并且表没有主键
create table t ......
Declare @Id int
Declare @Name varchar(20)
Declare Cur Cursor For Select Id,Name from T_User
Open Cur
Fetch next from Cur Into @Id,@Name
While @@fetch_status=0
Begin
Update T_User Set [Name]=@Name,Id=@Id
......
原文转自:http://dev.csdn.net/develop/article/71/71778.shtm
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server要进行表格扫描读取表中的每一个记录才能找到索要的数据。索引可以分为簇索引和非簇索引,簇索引通过重排表中的数据来提高数据的访问速度,而非簇索引则通过维护表中的数 ......