都最近整理的,有用得着的朋友可以看看!
将数据导出到文件中:
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')