SQL简单按行查询

CREATE PROCEDURE GetDataByRow
(
@SqlStr varchar(8000), --起始语句
@FirstRec int, --首条记录
@LastRec int --最后记录
)

AS

--一个字符型的随机数 结果放入临时表中,表名随机生成
SELECT @dt = substring( Convert( varchar,rand()), 3, 10 )
-- STUFF(原字符串 , 开始替换的位置 , 被替换的字符数 , 用于替换的字符串 )
select @SqlStr = stuff(@SqlStr,charindex('FROM',upper(@SqlStr)),6,' INTO tempdb..Soft'+@dt+ 'FROM '
exec(@SqlStr)

--为临时表增加ID号
SELECT @SqlStr = ' ALTER TABLE tempdb..Soft'+ @dt +' AND TEMPDB_ID numberic(10) IDENTITY PRIMARY KEY'
exec(@SqlStr)


--取记录号和起始行和结束行中间的记录
SELECT @SqlStr = ' SELECT * FROM tempdb..Soft' + @dt
 + ' WHERE TEMPDB_ID > ' + Convert(varchar,@FirstRec)
 + ' and TEMPDB_ID <= ' + Convert(varchar,@LastRec)

exec (@SqlStr)

--删除临时表
SELECT @SqlStr = ' DROP TABLE tempdb..Soft' + @dt
exec(@SqlStr)



posted @ 2012-03-19 23:24  TryHard  阅读(944)  评论(0编辑  收藏  举报