修改现有表以包含标识列
许多数据库任务需要向现有表添加标识列。 一个常见的问题是是否修改现有列或创建新列。
为什么无法直接转换
直接将现有列转换为标识列是不可行的。 标识列从定义的种子值开始生成顺序值。 修改现有列会破坏数据完整性。
添加身份列的策略
添加标识列有两种主要方法:
1。 创建带有身份的新表
这涉及:
2。添加新的身份列
此方法包括:
示例性 SQL 查询
方法一:新建表
<code class="language-sql">CREATE TABLE New_Table ( Id INT NOT NULL IDENTITY(1, 1), Name VARCHAR(50) NULL ); INSERT INTO New_Table (Id, Name) SELECT Id, Name FROM Original_Table; DROP TABLE Original_Table; EXEC sp_rename 'New_Table', 'Original_Table';</code>
方法2:添加新列
<code class="language-sql">ALTER TABLE Original_Table ADD Id_new INT IDENTITY(1, 1); ALTER TABLE Original_Table DROP COLUMN Id; EXEC sp_rename 'Original_Table.Id_new', 'Id', 'COLUMN';</code>
重要注意事项
NOT NULL
约束。 在插入数据之前将 IDENTITY_INSERT
设置为 ON
以维护现有值(如果需要)。以上是如何向现有数据库表添加标识列?的详细内容。更多信息请关注PHP中文网其他相关文章!