当前位置: 代码迷 >> ASP.NET >> 在SQL中的存储过程中实现如下功能
  详细解决方案

在SQL中的存储过程中实现如下功能

热度:115   发布时间:2013-02-25 00:00:00.0
求教:在SQL中的存储过程中实现如下功能
这样的问题:在SQL中的T-SQL中实现如下功能
传入要修改的字段,对字段进行判断,如果是字段一,我就字段一加一,如果是字段2,我就是字段2加1   .用CASE是搞不掂的啦
哪位兄弟帮忙?多多指教,谢谢。

------解决方案--------------------------------------------------------
动态sql很容易实现.
------解决方案--------------------------------------------------------
eg:

Create ProceDure SP_TEST(@ColName Varchar(100))
As
Begin
EXEC( ' Update TEST Set ' + @ColName + ' = ' + @ColName + ' + 1 ')
End
GO
EXEC SP_TEST 'A '
------解决方案--------------------------------------------------------
如:参数是@fielddeclare @sql nvarchar(1000)set @sql = 'update t set ' +@field + ' = ' + @field + ' +1 where ... 'exec (@sql);
------解决方案--------------------------------------------------------
--創建測試環境
Create Table TEST(ID Int, A Int, B Int, C Int)
--插入數據
Insert TEST Select 1, 11, 12, 13
GO
--創建存儲過程
Create ProceDure SP_TEST(@ColName Varchar(100))
As
Begin
EXEC( ' Update TEST Set ' + @ColName + ' = ' + @ColName + ' + 1 ')
End
GO
--測試
--第一次執行存儲過程
EXEC SP_TEST 'A '
Select * From TEST

--第二次執行存儲過程
EXEC SP_TEST 'B '
Select * From TEST
GO
--刪除測試環境
Drop Table TEST
Drop ProceDure SP_TEST
--結果
/*
--第一次執行存儲過程結果(A列數據發生變化)
ID A B C
1 12 12 13

--第二次執行存儲過程結果(B列數據發生變化)
ID A B C
1 12 13 13
*/
------解决方案--------------------------------------------------------
没明白你的意思呢^_^
select data1+1, data2+1 from table
------解决方案--------------------------------------------------------
楼主想太复杂了,
用ECEC动态SQL很容易达到要求
  相关解决方案