[英]Table valued Function - Identity(seed, increment)
我有一个表值函数qlikview_verlauf
。 我想返回一个id
Date
和Path
的表。
Identity(seed, increment)
ID是一个自动增量值。 我想从另一个名为Testfortschritt
表的max(id)+1
开始此自动增量(种子)。
我已经尝试了以下方法,但是没有用。 错误消息是不正确的语法。
Create FUNCTION [dbo].[qlikview_verlauf](@param INT)
RETURNS @qlikview_verlauf table (
ID INT IDENTITY((Select max(id) from Testfortschritt),1)
,[Date] date NOT NULL
,[Path] varchar(600) NOT NULL
)
我会留出ID列的IDENTITY
,而是使用ROW_NUMBER
在SELECT
语句中生成ID。
例如:
SELECT
(SELECT MAX(id) FROM Testfortschritt) +
ROW_NUMBER OVER(ORDER BY (SELECT 1)) AS ID,
[Date],
[Path]
FROM <YourTable>
由于我不知道您的确切语句的样子,因此我使用了ORDER BY (SELECT 1)
,它使SQL Server可以确定记录的编号顺序。 如果您有特定的订单,只需将(SELECT 1)
替换为您的订单列。
由于ID应该是唯一的,所以我也省略了您的方案中不需要的PARTITION BY
子句。
有关ROW_NUMBER
更多信息,请参见此处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.