标签: identity-column

将标识添加到现有列

我需要将表的主键更改为标识列,并且表中已有许多行.

我有一个脚本来清理ID以确保它们从1开始顺序启动,在我的测试数据库上运行正常.

什么是将命令改为具有标识属性的SQL命令?

sql sql-server alter-table identity-column

421
推荐指数
8
解决办法
82万
查看次数

身份增量在SQL Server数据库中跳跃

FeeSQL Server 2012中的"ReceiptNo"列中的一个表中,数据库标识增量突然开始跳转到100而不是1,具体取决于以下两点.

  1. 如果它是1205446,则跳转到1206306,如果是1206321,则跳转到1207306,如果是1207314,则跳到1208306.我想让你注意的是,最后三位数保持不变,即每当跳跃时为306如下图所示.

  2. 我重新启动计算机时会出现此问题

在此输入图像描述

sql sql-server identity-column sql-server-2012

117
推荐指数
6
解决办法
7万
查看次数

如何以编程方式确定SQL表具有标识列的内容

我想在SQL Server 2005中创建一个列列表,其中包含标识列及其在T-SQL中的相应表.

结果将是这样的:

TableName,ColumnName

t-sql sql-server metadata identity-column

97
推荐指数
4
解决办法
12万
查看次数

即使使用事务回滚,SQL标识(自动编号)也会增加

我有一个.net事务与SQL插入到SQL Server 2005数据库.该表具有标识主键.

当事务中发生错误时,将Rollback()被调用.行插入正确回滚,但是下次将数据插入表时,标识会增加,就好像回滚从未发生过一样.所以基本上在身份序列中存在差距.有没有办法让Rollback()方法回收丢失的身份?

我没有以正确的方式接近这个吗?

.net sql transactions sql-server-2005 identity-column

76
推荐指数
6
解决办法
3万
查看次数

带有标识(自动增量)列的BULK INSERT

我正在尝试从CSV文件中添加数据库中的批量数据.

Employee表有一个列ID(PK)自动递增.

CREATE TABLE [dbo].[Employee](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [Name] [varchar](50) NULL,
 [Address] [varchar](50) NULL
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我正在使用此查询:

BULK INSERT Employee  FROM 'path\tempFile.csv ' 
WITH (FIRSTROW = 2,KEEPIDENTITY,FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n');
Run Code Online (Sandbox Code Playgroud)

.CSV文件 -

Name,Address
name1,addr test 1
name2,addr test 2
Run Code Online (Sandbox Code Playgroud)

但它会导致此错误消息:

第2行第1列(id)的批量加载数据转换错误(类型不匹配或指定代码页的无效字符).

sql-server bulkinsert identity-column

68
推荐指数
4
解决办法
11万
查看次数

重置Microsoft SQL Server 2008 R2中的自动增量

我创建了一个自动增量的主键.

  • 我添加了两行: ID=1, ID=2
  • 我删除了这两行.
  • 我添加了一个新行,但新行的ID是: ID=3

如何将自动增量重置或重启为1?

auto-increment identity-column sql-server-2008-r2

32
推荐指数
2
解决办法
7万
查看次数

一个sql server表有两个标识列吗?

我需要有一列作为主键,另一列是自动递增订单号字段.这可能吗?

编辑:我想我只会使用一个复合数作为订单号.不管怎么说,多谢拉.

sql sql-server identity-column

28
推荐指数
3
解决办法
5万
查看次数

插入Oracle并检索生成的序列ID

我有一些SQL Server的原始SQL查询,它们使用SCOPE_IDENTITY在一次执行INSERT后立即检索特定INSERT的生成ID ...

INSERT into Batch(
BatchName,
BatchType,
Source,
Area
) Values (
@strBatchName,
@strType,
@strSource,
@intArea
);

SELECT SCOPE_IDENTITY() BatchID;
Run Code Online (Sandbox Code Playgroud)

问题是:

对Oracle数据库执行此操作的最佳方法是什么?

这可以通过标准SQL在Oracle上完成,还是我必须将其切换为使用存储过程并在存储过程的主体中放置类似的东西?

如果它必须是存储过程,那么检索最后生成的序列号的事实上的标准方法是什么,注意考虑在多个线程上可能存在重叠执行,因此该机制需要检索正确生成的ID和不一定是绝对最后生成的ID.

如果两个同时执行,则每个必须从每个相应的呼叫返回正确的生成ID.注意我没有使用SQL Server的"@@ IDENTITY",因为调用的多线程特性.

如果可能的话,我宁愿将其保留为原始SQL,因为我更容易跨平台管理(包含由DBMS识别标签分隔的每个平台的SQL块的单个文件).存储过程对我来说要管理的工作要多一点,但如果这是唯一可能的话,我可以这样做.

sql oracle stored-procedures identity-column scope-identity

28
推荐指数
4
解决办法
12万
查看次数

如何获取具有标识列的所有表的列表

我想学习如何从MS SQL数据库中获取具有标识列的所有表的列表.

sql t-sql sql-server identity-column

23
推荐指数
3
解决办法
4万
查看次数

Linq to SQL - 如何在InsertOnSubmit()之后找到IDENTITY列的值

我正在使用LINQ to SQL将简单数据插入到没有a的表中stored procedure.该表有一个主键ID列,在我和我的IDENTITY两个中都设置为一列.SQL ServerDBML

首先,我InsertOnSubmit();使用数据调用单行,然后调用SubmitChanges();将行提交到数据库.但我认为必须有一种简单的方法来检索IDENTITY新插入行的行列值.我不希望为IDENTITYdb 提供列值,我希望它为我生成一个.

如何最好地处理?

sql linq identity-column linq-to-sql

18
推荐指数
1
解决办法
2万
查看次数