mssql数据插入的问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:54:52
数据表三个列 id type x_id
id是标识列 就是自动起始1递增1的列
如果type插入的值是0 x_id和id值相等
如果type是1 x_id是sql语句插入值
请问这要怎么办?

要用两个语句来处理,插入数据的时候始终使用下面的语句:
INSERT INTO tab(id,type,x_id) values (null, 0, 0);
或者
INSERT INTO tab(id,type,x_id) values (null, 1, 987);

也就是说,给id赋值null让它自动编号,type和x_id设置为规定的值,当type为0(也就是x_id需要和id相等的时候)设置x_id为任意值都可以(比如0)。

接下来用UPDATE语句修改x_id等于id,例如:
UPDATE tab SET x_id=id WHERE type=0

mssql不清楚,oracle语法参考如下:
insert into tab(id,type,x_id)
values(id,type,decode(type,0,id,x_id))