关于SQL字段默认值的问题

hb1122 2011-11-12 02:03:37
表A
字段:A1,A2,A3。。。

希望A2的默认值是A1,即保存后,A2=A1,不知默认值该如何设定,求助!
十分感谢!
...全文
104 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2011-11-13
  • 打赏
  • 举报
回复
用触发器

Create trigger tr_A_insert on A
instead of insert
as
set nocount on;
insert A(A1,A2,A3 )
select A1,A1,A3 from inserted
jyh070207 2011-11-13
  • 打赏
  • 举报
回复
如用计算列,b列等于a列,且不能直接更改a列,设b为计算列就没有意义了,如果初始设置b=a,后面可以改b的值的话,可以用触发器解决
--小F-- 2011-11-12
  • 打赏
  • 举报
回复
直接用计算列啊
create table tb
(
a int,
b as a,
c int
)
苦苦的潜行者 2011-11-12
  • 打赏
  • 举报
回复
触发器
pengxuan 2011-11-12
  • 打赏
  • 举报
回复

if object_id('tb','U') is not null
drop table tb
go
create table tb
(
A1 varchar(10),
A2 AS A1,
A3 varchar(10)
)
go
insert into tb (A1,A3) values ('1','3')
select * from tb
/*
A1 A2 A3
---------- ---------- ----------
1 1 3

(1 行受影响)
*/

用计算列就可以了
hb1122 2011-11-12
  • 打赏
  • 举报
回复
A1是自动编号,A2只里要在保存时把号整过去就行了
wang_pei_1984 2011-11-12
  • 打赏
  • 举报
回复
可以在程式中判断A2是否有值,如果没有值的话就以A1的值为准就好了呀
NBDBA 2011-11-12
  • 打赏
  • 举报
回复
1楼的方法叫计算列,不过与默认值是不同的,计算列不能修改

楼主的功能要实现,看来只能触发器
黄_瓜 2011-11-12
  • 打赏
  • 举报
回复

alter table t drop column A2
alter table t add A2 as A1
黄_瓜 2011-11-12
  • 打赏
  • 举报
回复

alter table t drop column b
alter table t add b as a

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧