㈠ 我想在程序中写一条sql语句,删除表中某条信息,然后主键id重置,不出
一般是这样的,
启动事务,
提交主表,
主表提交不成功,回滚事务,
主表提交成功,取得刚保存的主表D值,提交从表(含主表ID字段值)
从表提交不成功,回滚事务(主表也将删除)
从表提交成功,提交事务,完成操作
查询当然很容易:
SELECT * FROM 主表,从表 where 主表.ID=从表.ID
㈡ sql的自增列如何重置
--操作的过程中,注意一点,标识列自增是不能修改的,那么首先
--去除该列自增的标识,然后再修改id,成功修改后,再加上标识
--r如果不修改标识,会报错:“无法更新标识列”
create table #a
(ids int,
names varchar(100)
)
--插入测试数据,序号从100开始的,表示你当前表的情况
declare @a int
set @a=100
while @a<200
begin
insert #a(ids)
select @a
set @a=@a+1
end
--假定还有一个#b表也引用了该序号
--插入测试数据到#b
select ids n_id,names ff into #b from #a
--好,现在开始处理序号问题了,用临时表#tmp过渡
--这里用了一个标识列,请注意!
--将带一个新的序列的数据插入到表#tmp中
select identity(int,1,1) flag, * into #tmp from #a
--看看结果是不是有了新的序列了,呵
select * from #tmp
--那么现在就利用#tmp表来更新所有用到该序列的表
--更新#a
update #a set ids=flag from #a a,#tmp b where a.ids=b.ids
--更新其他表引用了该序列的,比如#b
update #b set n_id=flag from #b a,#tmp b where a.n_id=b.ids
㈢ 我想修改数据库SQL表中id,怎样让它从1开始呢
update tablename set id=rownum
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
㈣ sql server id 重置
执行
truncate table 表明
可以 清楚所有表中记录 自增列 重置 成1 开始
表 还在
但是 如果表中有外键约束 就不行 最省事的办法如下:
(从外键表 开始 删除)
右键点击表→编写表脚本为→DROP和CREATE到→新查询编辑器窗口
执行~
㈤ 清空SQL数据库后怎么让序列ID重1开始排列
方法和详细的操作步骤如下:
1、第一步,可以看到一条新记录已添加到mysql数据库表中,ID为59818,但显然只有一条记录,见下图,转到下面的步骤。
㈥ SQL id 重复如何删除
在 查询的时候在ID前加 DISTINCT 或是在最后的排序中 GROPU YB id
㈦ sql要将ID为空的重新生成调用一个变量算法update掉
我不知道你的那个getnewid() 是 什么 意思 但是 把id为null的给id 循环赋值 可以参考下面的例子
declare @i int --循环增量也是给id赋值
declare @maxid int--id为null的数量
declare @upid--记录给那个id赋值
set @i=1
select @maxid=count(id) from tb where id is null
begin
while @i<@maxid
select @upid=top @i id from tb where id is null
begin
update tb set id = @i where id = @upid
end
我也没试 我是菜鸟 但是思路 应该和这个差不多
㈧ 如何手动重置sql 主键ID
怎么重置有标识的主键,有时主键ID,设置自动增量后,要怎么重置:如 ID 主用用到SQL的这个功能: dbcc checkident(test, reseed, 0)
㈨ sql server 的id 可以reset吗
TrancateTable表名
--清空数据表,重置标识列,从标识种子重新开始。
--也就是id自增的从1重新开始
㈩ SQL SERVER 如何修改ID列
ID列是主键又是自增长列是不能被修改,如需修改一定要ID自增列功能取消;