表上的标识密钥的SQL查询

时间:2010-09-21 05:36:56

标签: sql-server tsql sql-server-2008 identity

我有SQL Server 2008中的表。它有empId,它是类型的int。现在不是身份。我想编写查询(以便我可以维护DB中的更改记录)以使此列成为标识列。该表目前没有数据。

2 个答案:

答案 0 :(得分:3)

可以做但不容易。根据{{​​3}},如果您通过SSMS执行此操作,然后生成基本上的脚本:

  1. 创建类似的表结构 例1,用Tmp_Example1表示 身份栏。
  2. 在新表上设置IDENTITY_INSERT ON 刚刚创建。步骤3:全部插入 值example1到Tmp_Example1
  3. 将IDENTITY_INSERT设为关闭 Tmp_Example ..
  4. 删除示例1(发生了什么...... 丢弃原来的表???)
  5. 将Tmp_Example1重命名为Example1。 提交交易
  6. 如果此表中没有任何数据,那么您可能最好通过SSMS执行此操作(步骤在我链接到的文章中提供)。你想用SQL做这个吗?

    <强>更新

    我正在阅读其他用户之前发布的this article,并发现这似乎比上述方法更容易:

    ALTER TABLE SOURCE_TB ADD ID_II INT IDENTITY(1,1)
    ALTER TABLE SOURCE_TB DROP COLUMN ID
    EXEC sp_rename 'SOURCE_TB.ID_II' ,'ID','COLUMN'
    

    但同样,通过SSMS做这件事可能更有意义。很高兴知道......

答案 1 :(得分:1)

您没有数据,因此请将表脚本删除并重新创建。将字段更改为Employeeid int identity(1,1)不为null。然后重新创建表格。没有大惊小怪。