在 SQL Server 2008 中控制 IDENTITY_INSERT
在 SQL Server 2008 中将数据插入具有标识列的表中有时需要覆盖自动标识值生成。 当 IDENTITY_INSERT
关闭时尝试使用指定值直接插入将导致错误。
要插入显式值,您需要暂时启用IDENTITY_INSERT
。 这是使用以下 T-SQL 命令完成的:
<code class="language-sql">SET IDENTITY_INSERT DatabaseName.SchemaName.TableName ON;</code>
分别将 DatabaseName
、SchemaName
和 TableName
替换为您的数据库、架构和表名称。
现在您可以为标识列插入具有指定值的数据:
<code class="language-sql">INSERT INTO YourTable (IdentityColumn, Column2, Column3, ...) VALUES (YourIdentityValue, Value2, Value3, ...);</code>
至关重要的是,始终记住在插入完成后禁用IDENTITY_INSERT
:
<code class="language-sql">SET IDENTITY_INSERT YourTable OFF;</code>
未能关闭IDENTITY_INSERT
可能会导致不一致和错误。
或者,您可以通过 SQL Server Management Studio (SSMS) 管理此设置。 在对象资源管理器中找到您的表,右键单击,选择“属性”,导航到“身份规范”选项卡,然后选中“允许 IDENTITY_INSERT”。 但是,请记住这是 T-SQL 命令的 GUI 等效项;基本机制保持不变。 直接 T-SQL 控制提供了更多的编程灵活性。
以上是如何在 SQL Server 2008 中管理 IDENTITY_INSERT?的详细内容。更多信息请关注PHP中文网其他相关文章!