GUID 是一種唯一的二進位數字;全世界的電腦都不會產生重複的 GUID 值。
GUID 的主要用途是在有許多站台與許多電腦的網路上指派一個唯一識別碼。
uniqueidentifier 值通常不會定義為常數。您可以利用下列方式指定 uniqueidentifier 常數:
(1) 字元字串格式:'6F9619FF-8B86-D011-B42D-00C04FC964FF'
(2) 二進位格式:0xff19966f868b11d0b42d00c04fc964ff
若要將 uniqueidentifier 資料類型的資料行,設定其「預設值(Default)」為 0,也就是 00000000-0000-0000-0000-000000000000。
可以使用:「字元字串格式」或「二進位格式」。
預期產出的資料值,請參考下圖所示:
以下是使用 SSMS 管理工具的資料表設計介面:
(1) 使用「二進位格式」,輸入:0x,前後無需單引號,請參考下圖所示:
或是
(2) 使用「字元字串格式」,輸入: '00000000-0000-0000-0000-000000000000',前後需要有單引號,請參考下圖所示:
請參考以下的程式碼範例:
--EX01. 使用「二進位格式」,設定「預設值」為:0x
USE [Northwind_Dev]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_UQ01_UID]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[tbuniqueidentifier01] DROP CONSTRAINT [DF_UQ01_UID]
END
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbuniqueidentifier01 ]') AND type in (N'U'))
DROP TABLE [dbo].[tbuniqueidentifier01]
GO
CREATE TABLE [dbo].[tbuniqueidentifier01](
[EID] [int] NULL,
[UID] [uniqueidentifier] NULL
) ON [PRIMARY]
GO
-- 使用「二進位格式」,設定「預設值」為:0x
ALTER TABLE [dbo].[tbuniqueidentifier01] ADD CONSTRAINT [DF_UQ01_UID] DEFAULT (0x) FOR [UID]
GO
/*==================================================*/
--EX02. 使用「二進位格式」,設定「預設值」為: '00000000-0000-0000-0000-000000000000'
USE [Northwind_Dev]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_UQ02_UID]') AND type = 'D')
BEGIN
ALTER TABLE [dbo].[tbuniqueidentifier02] DROP CONSTRAINT [DF_UQ02_UID]
END
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbuniqueidentifier02]') AND type in (N'U'))
DROP TABLE [dbo].[tbuniqueidentifier02]
GO
CREATE TABLE [dbo].[tbuniqueidentifier02](
[EID] [int] NULL,
[UID] [uniqueidentifier] NULL
) ON [PRIMARY]
GO
-- 使用「字元字串格式」,設定「預設值」為: '00000000-0000-0000-0000-000000000000'
ALTER TABLE [dbo].[tbuniqueidentifier02] ADD CONSTRAINT [DF_UQ02_UID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UID]
GO
參考資料
使用 Uniqueidentifier 資料
http://msdn.microsoft.com/zh-tw/library/ms190215.aspx
uniqueidentifier (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms187942.aspx
常數 (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms179899.aspx




沒有留言:
張貼留言