我创建了一个序列,其名称保存在名为tableName
. 我想用tableName
.
CREATE TABLE Test
(
T_ID INT default (NEXT VALUE FOR (Select x from tableName)
)
我创建了一个序列,其名称保存在名为tableName
. 我想用tableName
.
CREATE TABLE Test
(
T_ID INT default (NEXT VALUE FOR (Select x from tableName)
)
如果您希望使用存储在表中的序列名称作为选择的一部分,则需要使用动态 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