以编程方式在表变量中设置身份种子

2023-11-21

我需要创建一个带有标识种子的表变量,该标识种子以另一个表中字段的最大值开头?

我试过这个:

DECLARE @IdentitySeed int

SET @IdentitySeed = (SELECT MAX(HHRecId) +1 FROM xxx )

DECLARE @HH TABLE (
    HHId INT IDENTITY(@IdentitySeed,1)
    ,AddressType CHAR(1)
    ,Address1 VARCHAR(100)
    ,City VARCHAR(50)
    ,State VARCHAR(2)
    ,Zip VARCHAR(5)
    ,LastName VARCHAR(50)
    )

但这会产生语法错误。

目前,我已向表变量添加了另一个 int 列,并使用标识列和 @IdentitySeed 的总和进行更新,但我想找到一种无需更新即可完成此操作的方法。


您可以使用以下命令检查 IDENTITY 列的当前值:

DBCC CHECKIDENT (#HH)

您也可以稍后使用以下命令更改它:

DBCC CHECKIDENT (#HH, RESEED, 42)

这也适用于新值的变量:

DBCC CHECKIDENT (#HH, RESEED, @IdentitySeed)

它适用于本地和全局临时表(即CREATE TABLE #HH (...) or CREATE TABLE ##HH (....)- 但它似乎不适用于表变量:-(

抱歉,您似乎无法使用表变量执行此操作......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式在表变量中设置身份种子 的相关文章

  • 内联表值 UDF 能否优于 SELECT 列列表中的等效标量 UDF?

    这个问题源于SQLServer 为什么要避免表值用户定义函数 https stackoverflow com questions 1081057 sqlserver why avoid table valued user defined f
  • 仅基于月份和年份的 SQL Server 日期比较

    我无法确定仅根据月份和年份比较 SQL 中的日期的最佳方法 我们根据日期进行计算 由于计费是按月进行的 因此该月的日期会造成更多障碍 例如 DECLARE date1 DATETIME CAST 6 15 2014 AS DATETIME
  • 在 Sql Server 中启用 DTD 支持

    我有各种 xml 文档需要存储在数据库列中 这些文档包含对 DTD 的引用 并且 SQL Server 不会导入 xml 因为它存在安全风险 如何在数据库上启用 DTD 支持 以便它可以让我插入 xml 内容 你必须CONVERT首先 MS
  • 临时表上没有外键限制? SQL Server 2008

    我知道临时表只会在 SQL Server 会话打开时存在 但为什么不能对它们进行外键限制呢 想象一下这样的场景 您创建从临时表到具体表的键的外键关系 外键关系的限制之一是您无法从临时表所依赖的键表中删除行 现在 通常当您创建外键关系时 您知
  • SSIS-从 Sharepoint 下载 Excel 并将其加载到 SQL 数据库

    我目前遇到的情况是共享点网站上有一个 Excel 文件 我需要将该 Excel 文件加载到数据库中 Excel 文件有多个工作表 我尝试过以下方法 但运气为零 方法 1 我访问 sharepoint 站点并访问 库 选项卡 并选择使用资源管
  • 如何使用索引更改表的列?

    我想将带有某些索引的表中 a 列的列大小从 varchar 200 更改为 varchar 8000 我应该如何进行 既然是VARCHAR你正在增加尺寸 然后简单地ALTER TABLE ALTER COLUMN https learn m
  • SQL Server 删除触发器 - 引用已删除行或标记为删除的行的行句柄

    我在表上有一个删除触发器 用于从另一个数据库的表中删除条目 CREATE TRIGGER dbo Trigger Contracts Delete ON dbo Contracts AFTER DELETE NOT FOR REPLICAT
  • 如何使用jdbc驱动编写事务?

    我想使用 jdbc 编写一个事务java 我尝试过这个简单的交易 BEGIN TRANSACTION NL GO NL UPDATE table SET col test where id 1010 NL GO NL COMMIT 我尝试过
  • INSERT 失败,因为以下 SET 选项设置不正确:“QUOTED_IDENTIFIER”

    在执行存储过程时 我们有时会收到以下消息 之后无需任何更改 删除并重新执行存储过程 它就可以正常工作 DBCORE INSERT 失败 因为以下 SET 选项设置不正确 QUOTED IDENTIFIER 验证 SET 选项是否正确用于索引
  • T-SQL 插入或更新

    我有一个关于 SQL Server 性能的问题 假设我有一张桌子persons包含以下列 id name surname 现在 我想在此表中插入一个新行 规则如下 If id表中不存在 则插入该行 If id存在 然后更新 我这里有两个解决
  • 将语句插入 SQL Server 数据库

    最近几天我试图找到这个错误 但没有成功 我正在尝试在数据库中插入一个新行 一切都很顺利 没有错误 也没有程序崩溃 My INSERT声明如下 INSERT INTO Polozaj Znesek Uporabnik Cas Kupec Po
  • 实体框架死锁问题

    我在使用 NET 4 的新实体框架时遇到了一个奇怪的问题 我有一个 SQL Server 2005 EXPRESS 数据库 我的服务使用实体框架将数据写入两个表 假设表是 TableA 和 TableB TableB 具有 TableA 的
  • 关于数据库变更的通知

    我正在尝试一种场景 其中我想使用任何用户提交的更改来更新在不同 PC 上运行的桌面 UI 例如 Application1 安装在 PC1 PC2 和 PC3 上 假设所有 PC 都运行此应用程序 假设 PC1 上的用户 1 更改数据并提交到
  • 如何增加每次 INSERT INTO 迭代的值?

    我有一个查询 如下所示 第 1 列位于 另一列是 varchar 100 INSERT INTO TABLE1 column1 column2 SELECT MAX column1 FROM TABLE1 1 anotherColumn F
  • 在 Sql Server 2005 中实现最后修改列的最佳方法?

    如何在 SQL 中实现最后修改列 我知道对于创建日期的列 您可以将默认值设置为getdate 对于最后修改我一直使用触发器 但似乎必须有更好的方法 Thanks 触发器是最好的方法 因为此逻辑与表密切相关 而不是与应用程序相关 除了更细粒度
  • SQL Server - 如何更改仅具有某些特定值的表列?

    TABLE Family BrothersName varchar 30 我已经在 BrothersName 中添加了一些名称 值 但现在我希望它只有 2 个特定名称 Alex and Tom 但稍后它也应该接受其他名称 处理这个问题的最佳
  • 空间索引无助于 SQL 查询(性能非常慢)

    我正在尝试测试包含 170 万个邮政编码的表中纬度 经度值的空间索引的性能 我创建了一个地理列并向其中添加了一个索引 但是使用空间索引的查询比在同一个表中的纬度 经度列上使用 正常 索引的查询要慢得多 至少 100 倍 但是查询计划显示索引
  • SQL Server 2012 中带有“AND”运算符的“LIKE”子句

    我的要求与该线程完全相同 如何在 SQL Server 中使用 JOIN LIKE 和 AND 运算符 https stackoverflow com questions 39745766 how to use join like with
  • SQL:从多个表中获取 USER 表中用户记录的计数。最好的方法是什么?

    我有4个SQL Server 2008版本 表 1 USER to store user information Fields UserId UserName 2 FILES to store files uploaded by user
  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId

随机推荐