SQl自定义函数调用错误('.' 附近有语法错误。),请问如何解决

ChinaCompass 2012-08-20 10:36:16
定义一个表值函数
fn_GetMoneysfor_sp_SalesRegistration(int ID)

此函数只返回一行数据

如果使用 select fname from fn_GetMoneysfor_sp_SalesRegistration(1) 可以返回正确数据


如果在查询语句中调用却出现问题。如下:

消息 102,级别 15,状态 1,第 18 行
'.' 附近有语法错误。


select fname=(select fname fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t

函数前面无论加不加所有者都是一样的错误。


是不是不能这样调用呢!请问改如何调用才不会出现问题?谢谢!


...全文
470 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

SQL code
select fname=(select fname from fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t


少了个from,如果加了from还是报错,那错误可能是由于t.id引起
[/Quote]

from 加了还是错误!请问不能使用这种方式调用函数吗?
  • 打赏
  • 举报
回复
select fname=(select fname from fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t

少了个from,如果加了from还是报错,那错误可能是由于t.id引起
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

SQL code

CREATE TABLE [dbo].[Tmp_Tbl](
[TypeID] [smallint] NOT NULL,
[TypeName] [nvarchar](128) NULL,
[Caption] [nvarchar](128) NULL
) ON [PRIMARY]


IF OBJECT_ID (N'fn_test') IS NOT NU……
[/Quote]

你好 我这还是出现了 这个错误

'.' 附近有语法错误。



是不是和SQl版本有关!我的版本为 MSSQL 2005
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

怎么我的回复不见了
[/Quote]

我一直没有看到啊!我没有权删回帖的哦 !谢谢你!
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

SQL code

CREATE TABLE [dbo].[Tmp_Tbl](
[TypeID] [smallint] NOT NULL,
[TypeName] [nvarchar](128) NULL,
[Caption] [nvarchar](128) NULL
) ON [PRIMARY]


IF OBJECT_ID (N'fn_test') IS NOT NU……
[/Quote]

好的!谢谢!我再试一下!
以学习为目的 2012-08-20
  • 打赏
  • 举报
回复
怎么我的回复不见了
jxqn_liu 2012-08-20
  • 打赏
  • 举报
回复

CREATE TABLE [dbo].[Tmp_Tbl](
[TypeID] [smallint] NOT NULL,
[TypeName] [nvarchar](128) NULL,
[Caption] [nvarchar](128) NULL
) ON [PRIMARY]


IF OBJECT_ID (N'fn_test') IS NOT NULL
DROP FUNCTION fn_test
GO

CREATE FUNCTION fn_test (@ID Int)
RETURNS TABLE
AS RETURN
(
Select TypeID, TypeName, Caption From Sy_Datatypes Where TypeID=@ID
)
GO



Select *, (Select TypeName from dbo.fn_test(A.TypeID)) TFld from SY_DataTypes a
以学习为目的 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 2 楼 的回复:

SQL code
select fname=(select fname from fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t


你好 感谢你的回复!加上 from也是存在这个问题!
[/Quote]
加上from也不行的话,是不是考虑你其他语句用到别名的时候'.'附近有语法错误
叶子 2012-08-20
  • 打赏
  • 举报
回复
select fname=(select top 1 fname fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SQL code
select fname=(select fname from fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t
[/Quote]

你好 感谢你的回复!加上 from也是存在这个问题!
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code
select fname from dbo.fn_GetMoneysfor_sp_SalesRegistration(1)
[/Quote]

写这个是没有问题的!加不加所有者dbo都一样!但是使用下面查询就出问题。

select fname=(select fname fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

SQL code
select fname from dbo.fn_GetMoneysfor_sp_SalesRegistration(1)
[/Quote]

你好!这样调用是没有问题的,不加所有者dbo也没有问题!但是使用下面的查询就会有问题!

elect fname=(select fname fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t
筱筱澄 2012-08-20
  • 打赏
  • 举报
回复
select fname=(select fname from  fn_GetMoneysfor_sp_SalesRegistration(t.id)) from table as t
叶子 2012-08-20
  • 打赏
  • 举报
回复
select fname from dbo.fn_GetMoneysfor_sp_SalesRegistration(1)
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

引用 12 楼 的回复:

引用 8 楼 的回复:

SQL code

CREATE TABLE [dbo].[Tmp_Tbl](
[TypeID] [smallint] NOT NULL,
[TypeName] [nvarchar](128) NULL,
[Caption] [nvarchar](128) NULL
) ON [PRIMARY]


IF OBJ……
[/Quote]
'.' 附近有语法错误
ChinaCompass 2012-08-20
  • 打赏
  • 举报
回复
'.' 附近有语法错误


jxqn_liu 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 8 楼 的回复:

SQL code

CREATE TABLE [dbo].[Tmp_Tbl](
[TypeID] [smallint] NOT NULL,
[TypeName] [nvarchar](128) NULL,
[Caption] [nvarchar](128) NULL
) ON [PRIMARY]


IF OBJECT_ID (N'fn_test……
[/Quote]

请问提示什么错误呢? 那个脚本的测试咋我这边能运行通过。
孤独皓 2012-08-20
  • 打赏
  • 举报
回复
是不是兼容模式出问题

EXEC sp_dbcmptlevel databasename, 90;

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧