2010-04-19 55 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]