当前位置:首页 » 编程语言 » sql2005if

sql2005if

发布时间: 2023-03-05 19:00:04

Ⅰ 在sql2005数据库执行存储过程出现:关键字 'SET' 附近有语法错误。 怎么处理呀代码如下

换成

CREATE proc [dbo].[GetDataSet]
@TableList Varchar(1024)='*',--搜索表的字段,比如:’id,datatime,job‘,用逗号隔开
@TableName Varchar(100), --搜索的表名
@SelectWhere Varchar(1024)='',--搜索条件,这里不用写where,比如:job=’teacher‘and class='2'
@SelectOrderId Varchar(50),--表主键字段名。比如:id
@SelectOrder Varchar(200)='', --排序,可以使用多字段排序但主键字段必需在最前面.也可以不写,比如:order by class asc
@intPageNo int=1, --页号
@intPageSize int=10 ,--每页显示数
@RecordCount int OUTPUT --总记录数(存储过程输出参数)
as
declare @TmpSelect NVarchar(4000)
declare @Tmp NVarchar(4000)
declare @pagecount int
set nocount on--关闭计数
set @RecordCount=0
set @TmpSelect = 'select @RecordCount=count(*) from '+@TableName+' where '+@SelectWhere
execute sp_executesql
@TmpSelect, --执行上面的sql语句
N'@RecordCount int OUTPUT' , --执行输出数据的sql语句,output出总记录数
@RecordCount OUTPUT
if (@RecordCount = 0) --如果没有贴子,则返回零
return 0
set @pagecount = @RecordCount/@intPageSize
if(@RecordCount%@intPageSize>0)
set @pagecount=@pagecount+1
if(@pagecount<=0)
set @pagecount=1
if(@intPageNo>@pagecount)
set @intPageNo=@pagecount
/*判断页数是否正确*/
--if (@intPageNo - 1) * @intPageSize > @RecordCount --页号大于总页数,返回错误
--set @intPageNo=@pagecount
set nocount off--打开计数
if @SelectWhere != ''
begin
set @TmpSelect = 'select top '+str(@intPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@intPageNo-1)*@intPageSize)+' '+@SelectOrderId+' from '+@TableName+' where '+@SelectWhere +' '+@SelectOrder+') and '+@SelectWhere +' '+@SelectOrder
end
else
begin
set @TmpSelect = 'select top '+str(@intPageSize)+' '+@TableList+' from '+@TableName+' where '+@SelectOrderId+' not in(select top '+str((@intPageNo-1)*@intPageSize)+' '+@SelectOrderId+' from '+@TableName+''+@SelectOrder+') '+@SelectOrder
end
execute sp_executesql @TmpSelect
return(@@rowcount)
GO

Ⅱ 用SQL 2005编程:求出1~999之间所有的同构数(一个数出现在其平方的右侧)。

declare @n int,@m int;
declare @t table(同构数 int)
set @n=0;
while(@n<999)
begin
set @n=@n+1;
select @m= case when @n<10 then 10 when @n<100 then 100 else 1000 end;
if (@n*@n-@n)%@m=0
insert into @t values (@n)
end
select * from @t结果:
同构数
1
5
6
25
76
376
675

热点内容
pythonlist去除元素 发布:2024-05-09 14:27:31 浏览:988
java编程实践 发布:2024-05-09 14:17:23 浏览:673
phpc代码 发布:2024-05-09 14:07:22 浏览:620
陈赫访问 发布:2024-05-09 14:04:22 浏览:153
python线程终止 发布:2024-05-09 13:29:49 浏览:995
udpsocketjava 发布:2024-05-09 13:25:59 浏览:857
访问的用法 发布:2024-05-09 13:13:59 浏览:593
移动路由器方盒子什么配置 发布:2024-05-09 13:09:59 浏览:69
pythonmysqlupdate 发布:2024-05-09 13:05:33 浏览:998
sql数据库无法链接 发布:2024-05-09 13:03:56 浏览:616