第一列让它每次都自动加1,
然后现在要添加一列让它默认等于前面那列,同时我们又随便改变它的值
我的问题是,怎么实现那列默认等于第一列呢
21 个解决方案
#1
貌似没这个必要。
#2
触发器
#3
好像不能设置其默认值。但,可以通过触发器Insert实现你的想法。
#4
这个需求?
实现是可以实现,但是LZ能不能说说为什么要这样设计,
貌似好像有几个人问过这样的问题了,这样的设计好像不是很好!
实现方式,触发器,或者在新增的SQL语句中完成都可以.
实现是可以实现,但是LZ能不能说说为什么要这样设计,
貌似好像有几个人问过这样的问题了,这样的设计好像不是很好!
实现方式,触发器,或者在新增的SQL语句中完成都可以.
#5
在 sql serve 中可以设计计算公式。可以把公式写成要等于的列名。无论怎么改都保持一样。
只不过两个数据类型要一致哦。
只不过两个数据类型要一致哦。
#6
触发器可以
#7
帅哥我头一次听说哦,细致点,举例吧!
#8
计算字段不知道可以不
#9
搞错了 不好意思
#10
create table test
(
nid int identity(1,1) not null,
acount int default 0,
primary key(nid)
)
--测试数据
--不想出现影响信息
set nocount on
go
insert test values('210');
go
select nid,
nid1=nid,
acount from test
虚拟字段
(
nid int identity(1,1) not null,
acount int default 0,
primary key(nid)
)
--测试数据
--不想出现影响信息
set nocount on
go
insert test values('210');
go
select nid,
nid1=nid,
acount from test
虚拟字段
#11
你的需求是不是这样的,
第一列唯一肯定是作为主键
另一列应该是作为用户自定义编号,如果用户不改,那么默认等于主键,业务上也应该是唯一的。
如果是这样的,那么我的建议是
主键不用自增,用varchar/nvarchar型,
两个字段的值在insert中处理。
第一列唯一肯定是作为主键
另一列应该是作为用户自定义编号,如果用户不改,那么默认等于主键,业务上也应该是唯一的。
如果是这样的,那么我的建议是
主键不用自增,用varchar/nvarchar型,
两个字段的值在insert中处理。
#12
第一列可以用自增列,
第二列貌似没有用处.因为和第一列内容一样,可以直接使用第一列即可.还减少了维护数据库的工作量.
#13
谢谢各位的帮忙,这个是毕设里面的,它要求就是让最后一列默认等于第一列的值,又要求可以更改其值。
触发器怎么实现呢?
触发器怎么实现呢?
#14
写一个sql不就可以了吗?
update tb set col2 = col1 呵呵。
update tb set col2 = col1 呵呵。
#15
关注一下
#16
这个有想过,不过感觉挺麻烦的,因为每次添加一条记录后还得加那句子
#17
CREATE TABLE [Test_dt](
[id] [nvarchar](50) NOT NULL,
[name] [nvarchar](50) NULL,
[flag] [nvarchar](50) NULL,
CONSTRAINT [PK_Test_dt] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
create trigger [trigger_test] on [Test_dt]
for insert
as
Update [Test_dt] set [flag]= (select top 1 [id] from inserted)
where id = (select top 1 [id] from inserted)
#18
哈哈毕业设计? 小伙子自己好好研究一下!研究好了你可以去找工作了
#19
/想实现并不难,只要添加一个表记录最后一次的数据即可,,,插入时候提出数据+1即可
#20
但凡设计上出现这种挺 “麻烦” 的东西的时候,往往是“逻辑”出了问题!
#21
谢谢各位!
#1
貌似没这个必要。
#2
触发器
#3
好像不能设置其默认值。但,可以通过触发器Insert实现你的想法。
#4
这个需求?
实现是可以实现,但是LZ能不能说说为什么要这样设计,
貌似好像有几个人问过这样的问题了,这样的设计好像不是很好!
实现方式,触发器,或者在新增的SQL语句中完成都可以.
实现是可以实现,但是LZ能不能说说为什么要这样设计,
貌似好像有几个人问过这样的问题了,这样的设计好像不是很好!
实现方式,触发器,或者在新增的SQL语句中完成都可以.
#5
在 sql serve 中可以设计计算公式。可以把公式写成要等于的列名。无论怎么改都保持一样。
只不过两个数据类型要一致哦。
只不过两个数据类型要一致哦。
#6
触发器可以
#7
帅哥我头一次听说哦,细致点,举例吧!
#8
计算字段不知道可以不
#9
搞错了 不好意思
#10
create table test
(
nid int identity(1,1) not null,
acount int default 0,
primary key(nid)
)
--测试数据
--不想出现影响信息
set nocount on
go
insert test values('210');
go
select nid,
nid1=nid,
acount from test
虚拟字段
(
nid int identity(1,1) not null,
acount int default 0,
primary key(nid)
)
--测试数据
--不想出现影响信息
set nocount on
go
insert test values('210');
go
select nid,
nid1=nid,
acount from test
虚拟字段
#11
你的需求是不是这样的,
第一列唯一肯定是作为主键
另一列应该是作为用户自定义编号,如果用户不改,那么默认等于主键,业务上也应该是唯一的。
如果是这样的,那么我的建议是
主键不用自增,用varchar/nvarchar型,
两个字段的值在insert中处理。
第一列唯一肯定是作为主键
另一列应该是作为用户自定义编号,如果用户不改,那么默认等于主键,业务上也应该是唯一的。
如果是这样的,那么我的建议是
主键不用自增,用varchar/nvarchar型,
两个字段的值在insert中处理。
#12
第一列可以用自增列,
第二列貌似没有用处.因为和第一列内容一样,可以直接使用第一列即可.还减少了维护数据库的工作量.
#13
谢谢各位的帮忙,这个是毕设里面的,它要求就是让最后一列默认等于第一列的值,又要求可以更改其值。
触发器怎么实现呢?
触发器怎么实现呢?
#14
写一个sql不就可以了吗?
update tb set col2 = col1 呵呵。
update tb set col2 = col1 呵呵。
#15
关注一下
#16
这个有想过,不过感觉挺麻烦的,因为每次添加一条记录后还得加那句子
#17
CREATE TABLE [Test_dt](
[id] [nvarchar](50) NOT NULL,
[name] [nvarchar](50) NULL,
[flag] [nvarchar](50) NULL,
CONSTRAINT [PK_Test_dt] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
create trigger [trigger_test] on [Test_dt]
for insert
as
Update [Test_dt] set [flag]= (select top 1 [id] from inserted)
where id = (select top 1 [id] from inserted)
#18
哈哈毕业设计? 小伙子自己好好研究一下!研究好了你可以去找工作了
#19
/想实现并不难,只要添加一个表记录最后一次的数据即可,,,插入时候提出数据+1即可
#20
但凡设计上出现这种挺 “麻烦” 的东西的时候,往往是“逻辑”出了问题!
#21
谢谢各位!