sqlserver获取第n行数据
如何在一个没有主键的表中获取第n行数据,在sql2005中可以用row_number,但是必须指定排序列,否则你就不得不用select into来过渡到临时表并增加一个排序字段。
用游标的fetch absolute语句可以获取绝对行数下的某行数据,测试代码如下:
set nocount on
--建立测试环境并插入数据,并且表没有主键
create table test(id int ,name varchar(10))
insert into test select 999,'jinjazz'
insert into test select 888,'csdn'
insert into test select 999,'sqlserver'
--通过游标获取绝对行数
declare myCursor scroll cursor for select * from test
open myCursor
fetch absolute 3 from myCursor
close myCursor
deallocate myCursor
--删除测试环境
drop table test
set nocount off
/*--
id name
----------- ----------
999 sqlserver
--*/
相关文档:
MS Sqlserver 2005 集群是指数据库高可用性集群,能实现通常所说的“双机热备”,即当一台服务器停掉数据库服务可以自动转移到另一台服务器。
环境要求:
1、windows 2003 server企业版
&nb ......
本篇内容系属SQLServer高级编程,适用于欲提高自己和复习或应付面试的朋友阅读,同时本人学习不久,在总结和归纳时错误和不恰当之处在所难免,还请指出其中‘端倪’,予以完善。
表1:Users
USE [Wish]
GO
/****** 对象: Table [dbo].[Users] 脚本日期: ......
create proc P_QuerySplit
@sqlscript varchar(20), --表名/SQL语句
@pageSize int, --每页记录数
@pageIndex int, &nbs ......
可以用扩展存储过程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 ......
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-C2FA ......