sql分页及其他

  都最近整理的,有用得着的朋友可以看看!

   将数据导出到文件中:

   EXEC master..xp_cmdshell 'bcp bschis.dbo.jd_jmjkda out "c:\test.txt" -c  -U"sa" -P"jackie"'

/*

A、往表中插入2千条记录:编号分别为1,2....、分数为0到100之间的随机数
B、统计上述插入所需时间(毫秒)。
C.对数据进行分页
*/
use pubs

create table tb_insertstore_test(
	id int primary key,
	stuName varchar(30),
	store float(2)

)
--添加列
ALTER TABLE tb_insertstore_test ADD store float
select * from tb_insertstore_test

declare @temp int
declare @bgt datetime
declare @egt datetime
set @bgt=getdate()
set @temp=1
while(@temp<2000)
begin
--floor函数返回不大于参数的最大整数
insert into tb_insertstore_test values(@temp,'张三'+convert(varchar(20),@temp),floor(rand()*101))
set @temp=@temp+1
end
set @egt=getdate()

select datediff(ms,@bgt,@egt) as '插入数据所需时间/毫秒'



--分页语句
--思路(( 查询出符合条件的总记录数%每页显示的记录数==0)?(总数/每页记录数):(总数/每页记录数+1))
declare @count int--查询总数(每页的记录数*当前页)
declare @pageCount int--每页显示的记录数
set @count=20
set @pageCount=10
declare @sqlStr varchar(1000)--动态sql分页
set @sqlStr = 
     ' select top ' +convert(varchar,@pageCount)+
     '* from (' +
       ' select top ' +convert(varchar,@count) +'*from tb_insertstore_test order by store desc' +
       ' ) as a'

exec(@sqlStr)

--分页存储过程语句
create procedure proc_FenYe
   @pageSize varchar(5),--每页显示的记录数
   @pageCount varchar(5)--需查询的数量
as
declare @sqlString varchar(500)
begin
  set @sqlString='select top ' +convert(varchar,@pageSize)+
     '* from (' +' select top ' +convert(varchar,@pageCount) +'* from tb_insertstore_test order by store) as tb_store order by store desc'
  exec(@sqlString)
end
--下面这条分页语句要sql2005才能执行,sql2000不支持变量直接加在select top xx查询中
--select top @pageSize *from (select top @pageCount * from tb_insertstore order by store asc) as tb_store order by store desc
go
--drop procedure proc_FenYe
exec proc_FenYe'15','1000'
-----------------------------------------------------------------------------------------------
/*
create table tbStockIn
(
	code varchar(20) primary key
)
select * from tbStockIn

delete from tbStockIn
insert into tbStockIn values('rk000001')
insert into tbStockIn values('rk000002')
insert into tbStockIn values('rk000012')
insert into tbStockIn values('rk000009')
*/
select isnull('rk'+right('00000' +convert(varchar,right(max(code),6) +1 ),6),'rk000001')--编号自动增长

select isnull(null,'rk000001')



 

你可能感兴趣的:(sql,C++,c,XP,C#)