Sql 使用默认约束值更新字段

Sql 使用默认约束值更新字段,sql,sql-server,oracle,Sql,Sql Server,Oracle,如果列具有默认约束,如何更新现有记录以将其设置为该默认值 e、 我想做一些类似的事情 UPDATE table1 SET col1 = DEFAULT(col1) WHERE col2 = xxx 设置如下: UPDATE table1 SET col1 = DEFAULT WHERE col2 = xxx 设置如下: UPDATE table1 SET col1 = DEFAULT WHERE col2 = xxx 你可以试试这个 Create table tab1(id in

如果列具有默认约束,如何更新现有记录以将其设置为该默认值

e、 我想做一些类似的事情

UPDATE table1
SET col1 = DEFAULT(col1)
WHERE col2 = xxx
设置如下:

UPDATE table1
 SET col1 = DEFAULT
 WHERE col2 = xxx
设置如下:

UPDATE table1
 SET col1 = DEFAULT
 WHERE col2 = xxx
你可以试试这个

 Create table tab1(id int, def int constraint df_def Default 10)

INSERT INTO tab1(id) VALUES(1)
INSERT INTO tab1(id,def) VALUES(2,15)

DECLARE @DefVal INT

SELECT @DefVal=REPLACE(REPLACE(object_definition(default_object_id),'(',''),')','')
FROM   sys.columns
WHERE  name      ='def'
AND    object_id = object_id('dbo.tab1')

UPDATE tab1 SET def=@DefVal WHERE id=2
你可以试试这个

 Create table tab1(id int, def int constraint df_def Default 10)

INSERT INTO tab1(id) VALUES(1)
INSERT INTO tab1(id,def) VALUES(2,15)

DECLARE @DefVal INT

SELECT @DefVal=REPLACE(REPLACE(object_definition(default_object_id),'(',''),')','')
FROM   sys.columns
WHERE  name      ='def'
AND    object_id = object_id('dbo.tab1')

UPDATE tab1 SET def=@DefVal WHERE id=2

简单地
SET col1=DEFAULT
?添加一些示例数据和col1的数据类型,您将不得不删除约束并执行单个更新,否则它将不允许对默认值进行更新column@Ven什么意思?可以使用默认值更新列。默认值表示“如果未提供其他值,则使用此值”。这并不意味着“不允许其他值”。@SeanLange:Sean你说得对,我把它解释为标识列
DEFAULT
是一个关键字,你可以在发布更新和插入时使用它来明确表示你想要默认值。只需
SET col1=DEFAULT
?添加一些示例数据和col1的数据类型,您必须删除约束并执行单个更新,否则它将不允许对默认值进行更新column@Ven什么意思?可以使用默认值更新列。默认值表示“如果未提供其他值,则使用此值”。这并不意味着“不允许使用其他值”。@SeanLange:Sean你说得对,我把它解释为标识列
DEFAULT
是一个关键字,你可以在发布更新和插入时使用它来明确表示你想要默认值。