当前位置:首页 » 编程语言 » sql取消主键自增
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql取消主键自增

发布时间: 2022-05-01 20:54:11

1. sql删除自增长主键

有3种方法

  1. truncate table ‘你自己的表名称’

    --删除该表所有的数据

  2. 删除该表重新建

  3. dbcc checkident(‘你的表名称’, reseed, 1)

2. 如何用sql语句去掉主键的自增长属性

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_DropIDENTITY]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_DropIDENTITY]
GO

/*--标识列转换为普通列

采用修改标识列名,然后按新规则重列的方法处理
只适用于标识列没有与其他对象有关联的表
转换后,列的相关对象也不会恢复
有一定的局限性,仅供参考

--邹建 2005.05(引用请保留此信息)--*/

/*--调用示例

EXEC p_DropIDENTITY 'tb'
--*/
CREATE PROC p_DropIDENTITY
@TableName sysname --要处理的表名
AS
IF ISNULL(OBJECTPROPERTY(OBJECT_ID(@TableName),N'IsUserTable'),0)=0
BEGIN
RAISERROR('"%s" 必须是当前数据库中已经存在的用户表',12,16,@TableName)
RETURN
END

--标识列转换处理检查
DECLARE @s nvarchar(1000),@FieldName sysname,@bkFieldName sysname,@sql nvarchar(4000)
SELECT @FieldName=QUOTENAME(c.name),
@bkFieldName=CAST(NEWID() as char(36)),
@s=@FieldName+N' '+QUOTENAME(t.name)
+CASE WHEN t.name LIKE '%int' THEN N''
ELSE N'('+CAST(c.prec as varchar)
+N','+CAST(c.scale as varchar)+N')'
END
FROM sysobjects o,syscolumns c,systypes t
WHERE o.name=@TableName
AND o.id=c.id
AND c.xusertype=t.xusertype
AND c.status=0x80
IF @@ROWCOUNT=0
BEGIN
RAISERROR(N'表 "%s" 中无标识列',1,16,@TableName)
RETURN
END

--修改标识列名
SET @sql=QUOTENAME(@TableName)+N'.'+@FieldName
EXEC sp_rename @sql,@bkFieldName,N'COLUMN'

--转换为标识列处理
SELECT @TableName=QUOTENAME(@TableName),
@bkFieldName=QUOTENAME(@bkFieldName)
EXEC('ALTER TABLE '+@TableName+N' ADD '+@s)
EXEC('UPDATE '+@TableName+N' SET '+@FieldName+N'='+@bkFieldName+N'
ALTER TABLE '+@TableName+N' DROP COLUMN '+@bkFieldName)
RAISERROR(N'表 "%s" 中的标识列 "%s" 已经转换为普通列',1,16,@TableName,@FieldName)
GO

3. 如何修改sql server主键自动增长

你这个表与别的表有没有什么关联?
也就是它的主键是不是别的表的外键?
如果这个表,与别的表,没有任何关联,是很好修改的。如果有关联,我个人感觉,很难改。
如果没有关联。
你可以新建一张表b,然后主键从1开始,然后把a表的数据一次性跟新过去,然后把a表删除,把b表的表名,修改成a,就可以了。

4. SQL自增字段,有数据删除后,如何实现自增字段的连续

对于自增字段确实有这个问题,也无法改变,这是由于自增字段的值是内部计算,每使用一次都会自动+1,有点类似线序,你可以使用如下两种方法解决:
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,

5. SQL 我想问问,我想让主键不递增,sql语句应该怎么写

不用写,有个手动的点一下就行了,是自动递增1的
选择了主键那行,看下面就有设置

6. sql语句如何删除主键

(1)如图:删除下面uid主键
语句:ALTER
TABLE
`6h_360_pay`
DROP
PRIMARY
KEY;
”6h_360_pay“是表名;
(2)如下图,再创建一个长度为11的int的类型、自增、且不为空的字段id为主键
语句:ALTER
TABLE
`6h_360_pay`ADD
COLUMN
`id`
int(11)
NOT
NULL
AUTO_INCREMENT
FIRST
,ADD
PRIMARY
KEY
(`id`);

7. sql 导入数据丢失主键,自动增长值等信息。怎么解决啊!

重新设置 ,但导入数据不会丢失主键,除非导入到其他库中,你可以通过先建表后,再导入解决

8. 如何删除数据库主键自动增长

我用的是sql2000,找到你所建立的表,然后右击选择设计表。选择你需要设置主键的那一行,将标识选择为否即可。如图:

9. sql主键列自增问题

环境:sql
server
2008
问题:设置主键和把它设为自增。
解决:点击table->选中表->design->选中需要设置主键的字段,单击右键"设置主键"即可。
若要设置主键自增,在列属性中找到标识规范,单击左边的"+"号,把否改为是,其他默认即可。

10. 在mysql中,主键自增怎么去掉

比如说 test表的id列自增,删除自增的sql如下
alter table test change id id int;