CREATE FUNCTION [dbo].[GET_UDC]
(
@P01_DB varchar(6),
@P02_SYSTEMCODE varchar(4),
@P03_REASONTYPE varchar(2),
@P04_KEY varchar(10)
)
--RETURNS INT
AS
BEGINreturn (select drdl01 from dbo.f0005
where drsy = rtrim(ltrim(@P02_SYSTEMCODE)) and drrt = rtrim(ltrim(@P03_REASONTYPE)) and rtrim(ltrim(drky)) = rtrim(ltrim(@P04_KEY)))END执行报错:
消息 156,级别 15,状态 1,过程 GET_UDC,第 9 行
关键字 'AS' 附近有语法错误。
消息 178,级别 15,状态 1,过程 GET_UDC,第 12 行
在此上下文中不能使用带有返回值的 RETURN 语句。
解决方案 »
- 新手求助
- 请教高手有没有将Cursor所返回的内容转换成用Inline Table-Valued Functions或者Select语句来表示
- 求救有关not in的问题
- sql 2005
- 两个数据库之间的数据交互
- 如何重 批处理中 返回值?
- SQL-Server DTS问题,我用微软提供的“传送数据库”的例子,不能成功。为什么?
- 请问在存储过程中用哪个函数可以获得调用它的计算机IP
- 在sqlplus中如何察看已经存在的trigger和procedure?
- 出现“initialization or shutdown in progress"这个错误应该怎么办?????
- 每條訂單明細對應的每個庫存數量都要顯示出來(三個表,交叉連接?)
- 请教一个查询
为何要把这句注释掉?
注释掉“RETURNS INT” 报错:
Msg 156, Level 15, State 1, Procedure GET_UDC, Line 9
关键字 'AS' 附近有语法错误。
Msg 178, Level 15, State 1, Procedure GET_UDC, Line 12
在此上下文中不能使用带有返回值的 RETURN 语句。
return (select drdl01 from dbo.f0005
where drsy = rtrim(ltrim(@P02_SYSTEMCODE)) and drrt = rtrim(ltrim(@P03_REASONTYPE)) and rtrim(ltrim(drky)) = rtrim(ltrim(@P04_KEY)))
改成select drdl01 from dbo.f0005
where drsy = rtrim(ltrim(@P02_SYSTEMCODE)) and drrt = rtrim(ltrim(@P03_REASONTYPE)) and rtrim(ltrim(drky)) = rtrim(ltrim(@P04_KEY))
后面要加上begin,当然后面也要有end了。
CREATE FUNCTION [dbo].[GET_UDC]
(
@P01_DB varchar(6),
@P02_SYSTEMCODE varchar(4),
@P03_REASONTYPE varchar(2),
@P04_KEY varchar(10)
)
RETURNS INT
AS
BEGINreturn (select drdl01 from dbo.f0005
where drsy = rtrim(ltrim(@P02_SYSTEMCODE)) and drrt = rtrim(ltrim(@P03_REASONTYPE)) and rtrim(ltrim(drky)) = rtrim(ltrim(@P04_KEY)))END