2014-10-05 78 views
0

我在我的數據庫中有一個SQL服務器表。如何在創建新行時將GUID的前8個字符插入列中?

有一個名爲Code在一個名爲Admin表列。

我怎樣才能讓這個默認的GUID的前8個字符?請注意,此列是一個varchar(8)。

+0

試試這個 - 'SELECT LEFT(NEWID(),8)'。我認爲這是你想要的。 – 2014-10-05 09:02:34

+0

你能告訴我怎麼做到這一點,所以這是列的默認值? – 2014-10-05 09:10:08

+0

檢查我的答案... – 2014-10-05 09:11:19

回答

2
ALTER TABLE [dbo].[table] 
    ADD CONSTRAINT [DF_table_myColumn] DEFAULT(left(newid(), (8))) 
    FOR [myColumn] 
GO 
3

雖然修改表

ALTER TABLE ADMIN 

ADD CONSTRAINT DF_SomeName DEFAULT LEFT(NEWID(), 8) FOR Code; 

OR

ALTER TABLE ADMIN 

ADD CONSTRAINT DF_SomeName DEFAULT RIGHT(NEWID(), 8) FOR Code; 

OR

ALTER TABLE ADMIN 

ADD CONSTRAINT DF_SomeName DEFAULT SUBSTRING(CAST(NEWID() as VARCHAR(50)),1,8) FOR Code; 

在創建表

CREATE TABLE ADMIN(
Code varchar(8) 
CONSTRAINT DF_PurchaseOrderDetail_rowguid DEFAULT 
LEFT(NEWID(), 8) FOR Code 
) 

CREATE TABLE ADMIN(
Code varchar(8) 
CONSTRAINT DF_PurchaseOrderDetail_rowguid DEFAULT 
RIGHT(NEWID(), 8) FOR Code 
) 

OR

CREATE TABLE ADMIN(
Code varchar(8) 
CONSTRAINT DF_PurchaseOrderDetail_rowguid DEFAULT 
SUBSTRING(CAST(NEWID() as VARCHAR(50)),1,8) FOR Code 
) 
1

添加默認約束:

ALTER TABLE [dbo].[Admin] ADD CONSTRAINT [DF_Admin_Code] 
DEFAULT (substring(CONVERT([varchar](50),newid(),0),(1),(8))) FOR [Code] 
相關問題