簡體   English   中英

表值函數-身份(種子,增量)

[英]Table valued Function - Identity(seed, increment)

我有一個表值函數qlikview_verlauf 我想返回一個id DatePath的表。

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_NUMBERSELECT語句中生成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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM