sql server 2014中用户定义函数如何保存在表值函数下
我不确定我问这个问题的位置是否合适。 但我想知道我创建的函数是如何归入表值函数的?为什么它不能在标量函数中 我在数据库中记录了以下函数sql server 2014中用户定义函数如何保存在表值函数下,sql,sql-server-2012,sql-server-2014,Sql,Sql Server 2012,Sql Server 2014,我不确定我问这个问题的位置是否合适。 但我想知道我创建的函数是如何归入表值函数的?为什么它不能在标量函数中 我在数据库中记录了以下函数 IF OBJECT_ID (N'dbo.ufnGetTVP', N'FN') IS NOT NULL DROP FUNCTION ufnGetTVP; GO CREATE FUNCTION dbo.ufnGetTVP(@input varchar(50)) returns @mt table (a nvarchar(60)) AS
IF OBJECT_ID (N'dbo.ufnGetTVP', N'FN') IS NOT NULL
DROP FUNCTION ufnGetTVP;
GO
CREATE FUNCTION dbo.ufnGetTVP(@input varchar(50))
returns @mt table (a nvarchar(60))
AS
-- Returns the stock level for the product.
BEGIN
declare @output varchar(1)
declare @len int=(select len(@input))
while(@len>0)
begin
set @output =substring(@input,0,2)
set @input=substring(@input,charindex(@output,@input)+2,len(@input))
SET @len=len(@input)
insert into @mt
Select @OUTPUT
end
return
END;
GO
如果函数将另存为TVF,如何创建标量函数?
请分享你的想法。
正如我在评论中所写的-标量函数和表值函数之间的区别只是函数的返回类型。
标量值函数是返回标量(或单个)值(如int、varchar、bit等)的函数,而表值函数是返回表的函数 创建标量函数的基本语法与创建表函数的基本语法相同:
CREATE FUNCTION <name>
(
<parameters list>
)
RETURNS <scalar type>
AS
BEGIN
-- function code goes here
END;
创建函数
(
)
返回
作为
开始
--函数代码在这里
结束;
因为它返回一个表?我觉得这是一个技巧性的问题。标量函数是返回单个值的函数,比如int、varchar、bit等等。表值函数是返回表的函数。