在插入数据后,我需要知道该行的ID,如何实现?
我尝试了使用SQL-Server和uniqueidentifier,但没有成功。 uniqueidentifier没有返回。
从我的定义中提取:
CREATE TABLE [dbo].[MyTable](
[ID] [uniqueidentifier] NOT NULL,
[Data] [nvarchar](255) NULL
)
ALTER TABLE [dbo].[MyTable] ADD DEFAULT (newid()) FOR [ID]
当我使用Sequel插入时:
DB[:MyTable].insert( :Data => 'data' )
数据集添加了唯一标识符,但是如果Dataset#insert的返回代码为nil
。
使用
DB[:MyTable].insert(:ID => Sequel.function(:newid), :Data => 'data' )
你会得到相同的结果。
我尝试过
key = Sequel.function(:ID)
DB[:MyTable].insert(:ID => key, :Data => 'data' )
但是'key'只是函数调用,而不是值。使用Sequel.function(:ID).f
会出现"无效的列名ID"错误。
但是如果您使用模型,则可以获得唯一标识符:
class MyTable < Sequel::Model(:MyTable); end
entry = MyTable.create(:Data => 'data')
$uniqueidentifier = entry[:ID]