--删除测试表A
DROP TABLE a
--删除函数 F_Test_One
DROP FUNCTION F_Test_One
--创建A表
create table a
(
id int identity(1,1) primary key,
[name] varchar(20)
)
INSERT INTO A([name])
SELECT 'a'
union all
select 'b'
GO
--创建函数
create function dbo.F_Test_One(@name varchar(50))
returns @TempTableOne table ([name] VARCHAR(50))
as
begin
IF @name='a'
BEGIN
insert into @TempTableOne SELECT @name
END
ELSE
insert into @TempTableOne SELECT @name+'test!'
RETURN;
end
GO
SELECT
(
SELECT COUNT(1) FROM dbo.F_Test_One(a.[name])
) AS ccount
FROM a
SQL SERVER 报
消息 102,级别 15,状态 1,第 4 行
Incorrect syntax near '.'.
请大家帮忙看一下!什么地方有问题!谢谢!
------解决方案--------------------
LZ代码在SQL2008 R2环境测试正常.
LZ的本地SQL跟服务器上的SQL版本不一样的吧?
------解决方案--------------------
a.[name] 把中括号去掉试试。
------解决方案--------------------
SELECT @@VERSION
/*
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 2005 00:33:37
Copyright (c) 1988-2005 Microsoft Corporation
Developer Edition on Windows NT 6.1 (Build 7601: Service Pack 1)
*/
我找了个2005测试了一下,没有发现问题。
你的错误提示第四行的.字符附近有错误,你看看是不是和你贴出来的不一样。
------解决方案--------------------
删除表和删除函数之前加个是否存在的判断试试
if object_id('a','u') is not null
drop table a
if object_id('F_Test_One') is not null
drop function F_Test_One
------解决方案--------------------