如何在创建新行时将GUID的前8个字符插入到列中?

时间:2014-10-05 09:00:39

标签: sql-server

我的数据库中有一个SQL服务器表。

名为Code的表中有一个名为Admin的列。

如何将此默认设置为GUID的前8个字符?请注意,此列是varchar(8)。

3 个答案:

答案 0 :(得分: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
 )

OR

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 :(得分:2)

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

答案 2 :(得分:1)

添加默认约束:

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