一個存儲過程

SQLMM 2005-09-09 11:32:50
我想得到表中Id字段的最大值
而且這個表是動態的 下面是我寫的存儲過程﹐可是 志向結果不正確﹐請各位老大給幫忙看看
CREATE procedure Sp_GetMaxId
(
@TableName varchar(20),
@ReturnStr integer output
)
as
declare @SqlStr varchar(80)
declare @returnNumber integer
begin
select @SqlStr='select Max(id) from ' +@tableName
execute @returnNumber= @SqlStr
select @ReturnStr=@returnNumber
end




...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxiaoma 2005-09-09
  • 打赏
  • 举报
回复
这样设计不太好,表名都成参数了,那个表还需要id这个字段
vivianfdlpw 2005-09-09
  • 打赏
  • 举报
回复
CREATE procedure Sp_GetMaxId
(
@TableName varchar(20),
@ReturnStr integer output
)
as
declare @SqlStr nvarchar(100)
select @SqlStr=N'select @max=Max(id) from ' +@tableName
exec sp_executesql @SqlStr,N'@max int out',@ReturnStr out

GO
wgsasd311 2005-09-09
  • 打赏
  • 举报
回复
老大﹐怎么把這個最大值取出來啊?
------先定义变量,再用此变量作参数调 用存储过程,你要结果放自动放在变量中了。

怎么判斷是否有記錄為空?
----------- 只要判断输出的值 是否为空,语法:
if @str is null
wgsasd311 2005-09-09
  • 打赏
  • 举报
回复
create procedure Sp_GetMaxId
(
@TableName nvarchar(20),
@ReturnStr int output
)
as
declare @SqlStr nvarchar(80)
declare @returnNumber int

SET @SQLSTR= 'select @returnNumber=(select Max(id) from ' +@tableName+')'
exec sp_executesql @sqlstr,N'@returnNumber int out',@returnNumber out
set @ReturnStr=@returnNumber

--测试
declare @str int
execute Sp_GetMaxId @TableName='table1',@ReturnStr=@str out
print @str
Colobam 2005-09-09
  • 打赏
  • 举报
回复
怎么判斷是否有記錄為空?
Colobam 2005-09-09
  • 打赏
  • 举报
回复
老大﹐怎么把這個最大值取出來啊?
rivery 2005-09-09
  • 打赏
  • 举报
回复
CREATE procedure Sp_GetMaxId
(
@TableName varchar(20),
@ReturnStr integer output
)
as
declare @SqlStr nvarchar(500)
begin
select @SqlStr='select @re=Max(id) from ' +@tableName
exec sp_executesql @sqlstr,N'@re int out',@ReturnStr out
end
go

--调用
declare @re int
exec sp_getMaxID 'a',@re out
select @re
spring_504 2005-09-09
  • 打赏
  • 举报
回复
判断是否有记录?有的话再取最大值

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧