标签: identity-insert

如何在SQL Server中检查IDENTITY_INSERT是否设置为ON或OFF?

我已经搜索过这个,但是看起来很容易得到那些不理解这个问题的人的答案.

采用以下语法:

SET IDENTITY_INSERT Table1 ON
Run Code Online (Sandbox Code Playgroud)

你怎么做更像这样的事情:

GET IDENTITY_INSERT Table1
Run Code Online (Sandbox Code Playgroud)

我不想对数据库中的数据或设置做任何事情以获取此信息.谢谢!

sql sql-server identity-insert

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

SqlBulkCopy插入标识列

我正在使用该SqlBulkCopy对象将数百万个生成的行插入到数据库中.唯一的问题是我插入的表有一个标识列.我已经尝试设置SqlBulkCopyOptionsto SqlBulkCopyOptions.KeepIdentity并将标识列设置为0's,DbNull.Valuenull.其中没有一个有效.我觉得我错过了一些非常简单的事情,如果有人能够启发我会很棒.谢谢!

编辑为了澄清,我没有在DataTable我导入中设置的标识值.我希望它们作为导入的一部分生成.

编辑2 这是我用来创建基础SqlBulkCopy对象的代码.

SqlBulkCopy sbc = GetBulkCopy(SqlBulkCopyOptions.KeepIdentity);
sbc.DestinationTableName = LOOKUP_TABLE;

private static SqlBulkCopy GetBulkCopy(SqlBulkCopyOptions options = 
    SqlBulkCopyOptions.Default) 
{
    Configuration cfg = WebConfigurationManager.OpenWebConfiguration("/RSWifi");
    string connString =
    cfg.ConnectionStrings.ConnectionStrings["WifiData"].ConnectionString;
    return new SqlBulkCopy(connString, options);
}
Run Code Online (Sandbox Code Playgroud)

c# sql-server sqlbulkcopy identity-insert

62
推荐指数
3
解决办法
7万
查看次数

用于在列中添加和删除自动增量属性的脚本

对于我正在处理的sql脚本,我需要以编程方式删除现有表中列的标识,标识种子和标识增量,然后将它们添加回脚本末尾的表中.有没有人有关于如何做到这一点的参考或示例?

sql-server identity-insert

22
推荐指数
2
解决办法
4万
查看次数

如何在使用identity_insert后自动重新设定?

我最近从PostgreSQL数据库迁移到SQL Server数据库.要切换数据我必须启用IDENTITY_INSERT.好吧,在任何表中执行插入操作时,我会发现由于重复的标识值(设置为主键)而导致各种奇怪的错误.

我有很多桌子.什么是最简单的方法来自动重新播种每个表的身份,以便它在之后max(RID)

sql-server identity identity-insert

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

IDENTITY INSERT和LINQ to SQL

我有一个SQL Server数据库.该数据库有一个名为Item的表.Item有一个名为"ID"的属性.ID是我桌子上的主键.此主键是一个增量值为1的int.当我尝试插入记录时,收到一条错误消息:

当IDENTITY_INSERT设置为OFF时,无法在表'Item'中为identity列插入显式值."

我试图使用以下代码插入记录:

  public int AddItem(Item i)
  {
    try
    {
      int id = 0;
      using (DatabaseContext context = new DatabaseContext())
      {
        i.CreatedOn = DateTime.UtcNow;
        context.Items.InsertOnSubmit(i);
        context.SubmitChanges();
        id = i.ID;
      }
      return id;
    }
    catch (Exception e)
    {
      LogException(e);
    }
  }
Run Code Online (Sandbox Code Playgroud)

当我在提交之前查看i.ID时,我注意到i.ID被设置为0.这意味着我正在尝试插入0作为标识.但是,我不确定应该是什么.有人可以帮我吗?

谢谢!

.net c# identity-insert linq-to-sql

13
推荐指数
3
解决办法
2万
查看次数

将IDENTITY_INSERT与EF4一起使用

我试图在db中创建一个具有预定义主键值的记录.我知道如何用sql做这个,但我想知道EF是否可以为我做这个?否则,我将不得不为插入创建存储过程.

entity-framework identity-insert

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

如何将SET IDENTITY_INSERT dbo.myTable置于ON语句中

我需要做的是SET IDENTITY_INSERT dbo.myTable ON声明,在ac#app中使用上述语句的语法是什么?

c# sql-server identity-insert

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

哪个命令会替换Oracle中SQLServer的IDENTITY INSERT ON/OFF?

我必须将此查询(此处简化)从T-SQL迁移到ORACLE

SET IDENTITY_INSERT table ON

INSERT INTO table (id, value) VALUES (1, 2)

SET IDENTITY_INSERT table OFF
Run Code Online (Sandbox Code Playgroud)

id 是SQLServer中的标识字段.

我在ORACLE中有一个与序列相同的表,我找不到一个片段,显示如何禁用序列并将其设置为使用MAX(id)+ 1再次启动.

任何ORACLE专家都可以帮我解决这个问题吗?

谢谢,罗德里戈.

t-sql migration oracle sequence identity-insert

9
推荐指数
1
解决办法
7747
查看次数

为什么这个带有IDENTITY_INSERT的EF插入不起作用?

这是查询:

using (var db = new AppDbContext())
{
    var item = new IdentityItem {Id = 418, Name = "Abrahadabra" };
    db.IdentityItems.Add(item);
    db.Database.ExecuteSqlCommand("SET IDENTITY_INSERT Test.Items ON;");
    db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

执行时,Id新表上的插入记录仍为1.

新:当我使用交易或TGlatzer的答案时,我得到例外:

当IDENTITY_INSERT设置为ON或复制用户插入NOT FOR REPLICATION标识列时,必须为表'Items'中的标识列指定显式值.

c# entity-framework identity-insert entity-framework-6

9
推荐指数
3
解决办法
8876
查看次数

Hibernate 3.5 vs 4 IDENTITY_INSERT问题

我们运行Spring 3.1/Hibernate 4/Java 7/Tomcat 7/MSSQL 2008 R2 Web应用程序.我们必须处理遗留数据和归档数据.从存档中提取数据时,我们需要使用原始唯一标识符,以便其他(非存档)记录能够正确地重新水合.这些标识符存储在主键/自动增量字段中.

在此之前,现在,当我们在使用Spring 3.0/3.5休眠,下面的代码工作中插入一个提取的记录回其相应的表(我们已经有变量session,entity以及fullTableName在范围内):

session.doWork( new Work() 
{ 
    @Override
    public void execute(Connection connection) throws SQLException
    {
        PreparedStatement statement = null;
        try
        {
            statement = connection.prepareStatement(String.format("SET IDENTITY_INSERT %s ON", fullTableName));
            statement.execute();

            session.save(entity);

            statement = connection.prepareStatement(String.format("SET IDENTITY_INSERT %s OFF", fullTableName));
            statement.execute();
        }
        finally
        {  /* close the statement */ }
    }
});
Run Code Online (Sandbox Code Playgroud)

就像我提到的,这在Hibernate 3.5中运行良好,但是现在我们已经升级到Hibernate 4,它已经停止工作了.Work和IsolatedWork之间有什么区别吗?

为了解决问题,并避免任何Work接口问题,我们尝试了以下方法:

session.createSQLQuery(String.format("SET IDENTITY_INSERT %s ON", fullTableName)).executeUpdate();
session.save(entity);
session.createSQLQuery(String.format("SET IDENTITY_INSERT %s OFF", fullTableName)).executeUpdate();
Run Code Online (Sandbox Code Playgroud)

但是,这也不起作用.具体来说,抛出的异常是java.sql.SQLException: Cannot …

hibernate transactions implicit identity-insert

7
推荐指数
1
解决办法
2981
查看次数