提问人:Martin Bre 提问时间:5/30/2022 最后编辑:Martin Bre 更新时间:5/30/2022 访问量:70
取决于输入 ID 或名称的 SQL Server 序列
SQL Server sequence depending on input id or name
问:
我想使用不同的序列,具体取决于我要添加的数字类型。
编号池
编号 | 名字 | 描述 | sequence_name |
---|---|---|---|
1 | 项目 | 项目 | seq_items |
2 | 文件 | 存储的文档 | seq_docs |
编号表
Number_Type_id | 数 | more_metadata |
---|---|---|
1 | 1 | 福 |
1 | 2 | 酒吧 |
1 | 3 | 福巴尔 |
2 | 1 | 巴福 |
通常,我会首先获取给定数字类型的序列:
SELECT * FROM numberpool
WHERE NumberPool.name LIKE "item"`
-> NumberPool.id = 1, sequence_name= 'seq_item'
INSERT INTO NumberTable (Number_Type_id, number, metadata)
OUTPUT Inserted.number
VALUES (3, NEXT VALUE FOR DBO.seq_items, 'foo')
有没有办法映射?numberpool.id
INSERT INTO NumberTable (Number_Type_id, number, metadata)
OUTPUT Inserted.number, Inserted.metadata
VALUES (3, 'foo')
还是按顺序?numberpool.name
INSERT INTO NumberTable (Number_Type_id, number, metadata)
OUTPUT Inserted.number, Inserted.metadata
VALUES ('item', 'foo')
这样,我就不需要知道客户端的 id。我不确定这是否是一个好主意,或者我的数据库结构是否需要一些工作。
答: 暂无答案
评论
SEQUENCE
IDENTITY
(select ID,sequence_name from NumberPool where name = 'documents')
NEXT VALUE FOR DBO.seq_items
(SELECT NEXT VALUE FOR DBO.seq_items)
NEXT VALUE FOR DBO.seq_items