[英]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.