简单?MS SQLSERVER 2000中用户自定义函数中的Execute问题!
发布网友
发布时间:2022-04-13 11:02
我来回答
共3个回答
热心网友
时间:2022-04-13 12:32
wen_huang(黄志文)。非常感谢你。我仔细阅读了SQL
Server的帮助文档,在Function中使用Exec只可以执行扩展存储过程,所以我的方法行不通。你的方法非常好,谢谢。
另外,请你在下面两张贴子上答复一下,让得分有主。:-)
http://www.csdn.net/expert/topic/343/343383.shtm
http://www.csdn.net/expert/topic/343/343382.shtm
热心网友
时间:2022-04-13 13:50
想了一下,其实可以用下面的方法来实现,虽然没你想象中灵活,但你要合计的列总是有限的:CREATE
FUNCTION
GetAFieldSum
(@AField
varchar(255))RETURNS
intASBEGIN
DECLARE
@Result
int
SELECT
@Result=(
CASE
@AField
WHEN
'COLUMN_NAME1'
THEN
SUM(COLUMN_NAME1)
WHEN
'COLUMN_NAME2'
THEN
SUM(COLUMN_NAME2)
ELSE
SUM(COLUMN_NAME3)
)
FROM
TABLE_NAME
RETURN(@Result)ENDDECLARE
@Result
intEXEC
@Result=GetAFieldSum('COLUMN_NAME1')/**************************************//*
学无止境
*/
/**************************************/
热心网友
时间:2022-04-13 15:24
请问在如何在实现如下的功能:Create
Function
GetAFieldSum(
@AField
varchar(100),--字段名)Returns
IntASbegin
Declare
@ret
int
declare
@SQL
varchar(200)
select
@sql='select
@ret=sum('+@Afield+')
from
Table'
Exec
@sql
return(@ret)end
各位大虾,我只想通过这个@ret取得这个表的某一字段值之和,但是系统不是告诉我找不到'select
@ret..'存储过程,就是报告说不恰当地使用了execute。请问如何解决?????