注册 登录
编程论坛 SQL Server论坛

在存储过程中想把最大的值给一个变量这样对吗(我等了一天了)斑竹,在吗?

gonggou123 发布于 2007-05-30 22:06, 527 次点击

if exists(select 1 from sysobjects where id=object_id('sp_watercode'))
drop procedure sp_watercode
go
create procedure sp_watercode @flag varchar(7),
@key varchar(15),
@table varchar(20)
as
declare @watercode varchar(20),@var varchar(2000)

select @var='select '+@watercode+'= max(' + @key +') from' + @table
+'where substring('+@key+',len('''+@flag+
'''),8)=convert(varchar(8),getdate(),112)'
exec (@var)

if isnull(@watercode,'')=''
select @watercode=@flag+convert(varchar(8),getdate(),112)+'001'
else
select @watercode=@flag+convert(varchar(8),getdate(),112)+
right( '000'+cast(cast(right(@watercode,3) as int)+1 as varchar(3)),3)

--execute sp_watercode 'GCB','projectid','tbl_gcinfdetail'

我执行这个存储过程的时候 说=号附近有错误 我不知道格式是不是这样的

重点是这里@watercode+'= max(' + @key +') 好象是这里错了吧
谢谢

[此贴子已经被作者于2007-5-31 7:36:43编辑过]

1 回复
#2
gonggou1232007-05-31 07:24
我是一个菜鸟 所以很多事不太懂 不知道可以不可以这样赋值
1