0

我创建了一个序列,其名称保存在名为tableName. 我想用tableName.

CREATE TABLE Test
(
     T_ID INT default (NEXT VALUE FOR (Select x from tableName)
)
4

1 回答 1

1

如果您希望使用存储在表中的序列名称作为选择的一部分,则需要使用动态 SQL。如果需要在存储过程中从序列中获取数字,可以使用 procedure sp_sequence_get_range,它接受序列名称作为参数。

有一个如何创建序列的示例:

CREATE SEQUENCE dbo.tableSequence  
    AS int  
    START WITH 1  
    INCREMENT BY 1 ;  
GO  

选择示例:

SELECT NEXT VALUE FOR dbo.tableSequence FROM dbo.tableName

主键默认值示例:

CREATE TABLE dbo.tableName  
(  
    EventID int PRIMARY KEY CLUSTERED   
        DEFAULT (NEXT VALUE FOR dbo.tableSequence),  
    EventTime datetime NOT NULL DEFAULT (getdate()),  
    EventCode nvarchar(5) NOT NULL,  
    Description nvarchar(300) NULL  
) ;  
GO 

您可以在以下位置了解有关 TSQL 序列的更多信息: https ://docs.microsoft.com/en-us/sql/relational-databases/sequence-numbers/sequence-numbers?view=sql-server-ver15

于 2020-03-13T19:48:37.843 回答