create procedure p_c_t (@tname varchar(30)) as
declare @sql varchar(1000)
set @sql = 'create trigger t_'+@tname+' on '+@tname+' for insert, delete, update as '
set @sql = @sql + ......
exec (@sql)
go

解决方案 »

  1.   

    如果只是为了最大号,那么向楼上所说,把字段类型定义为identity(1,1)不好吗
      

  2.   

    这是内容但有错,请帮我修改,它不认@tablename该如何
    CREATE PROCEDURE mzys_createtrigger @tablename varchar(50),@triggername varchar(50)
    AS
    --max id char length
    --@maxidlength   
    declare @sqlcmd nvarchar(500)
    set @sqlcmd=N'CREATE  TRIGGER '+@triggername+' ON '+@tablename+
    'FOR INSERT
    AS    declare @m_id float--最大号
       declare @m_id_char char(10)--最大号字符串
       select @m_id=max(申请单号) from @tablename with (tablockx)
       select @m_id=isnull(@m_id,0)
       select @m_id=@m_id+1
       select @m_id_char=rtrim(ltrim(str(@m_id)))
       while len(@m_id_char)<10
             select @m_id_char='+'0'+'@m_id_char
       select * into #lsins from inserted
       update #lsins set 申请单号=@m_id_char
    insert into @tablename 
              select * from #lsins'
    exec (@sqlcmd)