|
抛砖引玉:
create procedure sp_createuniqueid
@tabname sysname = null,
@objname sysname = null
as
if @tabname is null or len(@tabname) < 1 or @objname is null or len(@objname) < 1 return -1
declare @op nvarchar(3000), @output int
select @op = ''
select @op = @op + 'select @output = count(*) from ' + @tabname + char(13) + char(10)
exec sp_executesql @op, N'@output int output', @output output
if @output <= 0 return 1
else
begin
declare @retcode normalid
select @op = ''
select @op = @op + ' select @retcode = max(' + @objname + '_ID)+1 from ' + @tabname + char(13) + char(10)
-- select @op
execute sp_executesql @op, N'@retcode normalid output', @retcode output
if @retcode is not null return @retcode
end |
|