关闭

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

1334人阅读 评论(0) 收藏 举报
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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48773次
    • 积分:709
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:19篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论