2010-04-19 78 views

回答

1

我试着用SQL-Server和uniqueidentifier一样,但没有成功。唯一标识符不返回。从我的定义

提取物:

CREATE TABLE [dbo].[MyTable](
    [ID] [uniqueidentifier] NOT NULL, 
    [Data] [nvarchar](255) NULL 
) 
ALTER TABLE [dbo].[MyTable] ADD DEFAULT (newid()) FOR [ID] 

当我插入带有续集:

DB[:MyTable].insert(:Data => 'data') 

的数据集添加唯一标识符,但返回代码,如果数据集#刀片是nil

随着

DB[:MyTable].insert(:ID => Sequel.function(:newid), :Data => 'data') 

你得到同样的结果。

我试图

key = Sequel.function(:ID) 
DB[:MyTable].insert(:ID => key, :Data => 'data') 

但 '钥匙' 是唯一的函数调用,而不是价值。用Sequel.function(:ID).f,你会得到一个“无效的列名ID”。“ -error

但是如果你使用一个模型中,你得到的唯一标识符:

class MyTable < Sequel::Model(:MyTable); end 
entry = MyTable.create(:Data => 'data') 
$uniqueidentifier = entry[:ID]