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

本文介绍了一个SQL存储过程的示例,该过程可以根据输入的动作类型(查询、插入、更新或删除)对指定的表进行操作。通过传递不同的参数,如表名、字段、过滤条件和排序字段,可以灵活地执行各种数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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' 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值