浮云天空

让今天和昨天不同......

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

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' 
阅读更多
文章标签: sql 存储 go
个人分类: sql
上一篇SQL自定义函数split 将数组(分隔字符串)返回阵列(表)
下一篇NET1.x升级到.NET2.x问题小结
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭