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' 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章