sql存储过程 1查询;2插入;3更新;4删除

    技术2022-05-11  73

    CREATE   PROCEDURE  dbo.p    @actions   int ,   -- 对表的操作类型:1--查询;2--插入;3--更新;4--删除     @tablename   varchar ( 50 ),  -- 传入的表名     @fields   varchar ( 5000 ),  -- 传入的字段参数     @filters   varchar ( 5000 ),  -- 传入的过滤条件     @sort   varchar ( 50 -- 传入的排序字段 AS     declare   @sqlstr   varchar ( 1000 )    if   @actions   =   1     -- 检索数据         BEGIN              if   @fields   <>   ''     -- 如果传入的检索字段不为空,则检索指定的字段                   set   @sqlstr   =   ' select  '   +   @fields   +   '  from  ' +   @tablename              else                   set   @sqlstr   =   ' select * from  ' +   @tablename              if   @filters   <>   ''     -- 如果传入的过滤条件不为空,则检索指定条件的sql                    set   @sqlstr   =   @sqlstr   +   '  where  '   +   @filters              if   @sort   <>   ''    -- 如果传入的排序字段不为空,则按指定的字段排序               set   @sqlstr   =   @sqlstr   +   '  order by  '   +   @sort              exec ( @sqlstr )   -- 执行检索     END     if   @actions   =   2     -- 插入数据")         exec ( ' insert into  ' +   @tablename   +   '  ( '   +   @fields   +   ' ) values( '   +   @filters   +   ' ) ' )    if   @actions   =   3     -- 更新数据")     BEGIN          if   @filters   <>   ''     -- 如果传入的过滤条件不为空,则更新指定条件的行")              exec ( ' update  ' +   @tablename   +   '   set  '   +   @fields   +   '  where  '   +   @filters  )         else              exec ( ' update  ' +   @tablename   +   '   set  '   +   @fields  )  -- 更新所有行     END     if   @actions   =   4     -- 删除数据")     BEGIN          if   @filters   <>   ''     -- 如果传入的过滤条件不为空,则删除指定条件的行")              exec ( ' delete from  ' +   @tablename   +   '   where  '   +   @filters )         else              exec ( ' delete from  ' +   @tablename )      -- 删除所有行       END     if   @@ERROR   =   0         RETURN   0     GO -- 调用--- -- -p 1,'[link] as a',' top 32 *',' checked=1 and paiming is not null and logoURL is null ','paiming' 

    最新回复(0)