SQL查询表上的身份键

发布于 2024-09-24 09:54:59 字数 97 浏览 7 评论 0原文

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

I have the table in SQL Server 2008. It has empId, which is the int of type. It is not identity for now. I want to write the query (so that I can maintain the record of changes in DB) to make this columns as identity column. This table have no data currently.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橘寄 2024-10-01 09:54:59

这是可以做到的,但并不容易。根据这个如果您通过 SSMS 执行此操作,然后生成一个脚本,该脚本基本上:

  1. 创建类似的表结构
    example1,说 Tmp_Example1 与
    身份栏。
  2. 在新表上设置 IDENTITY_INSERT ON
    刚刚创建。第3步:插入全部
    从 example1 到 Tmp_Example1 的值
  3. 将 IDENTITY_INSERT 设置为 OFF
    Tmp_Example..
  4. 删除 example1(发生了什么事...
    删除我们原来的表???)
  5. 将 Tmp_Example1 重命名为 Example1。
    提交事务

如果正如您所说,该表中没有任何数据,那么您最好通过 SSMS 执行此操作(我链接到的文章中提供了步骤)。您想使用 SQL 执行此操作有什么原因吗?

更新

我正在阅读一篇文章用户之前发布并发现这似乎比我上面的方法容易得多:

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 执行此操作可能更有意义。不过很高兴知道...

It can be done but not easily. According to this article if you do this through SSMS and then generate a script that basically:

  1. Create similar table structure as
    example1, say Tmp_Example1 with
    Identity Column.
  2. Set IDENTITY_INSERT ON on new table
    just created.Step 3: Insert all
    values from example1 to Tmp_Example1
  3. Set IDENTITY_INSERT OFF on
    Tmp_Example..
  4. Drop example1 (What is going on…
    dropping our original table???)
  5. Rename Tmp_Example1 to Example1.
    Commit Transaction

If this table doesn't have any data in it as you say, then you are probably better off just doing this through SSMS (steps are provided in the article i link to). Is there a reason you want to do this using SQL?

UPDATE

I was reading an article that another user posted up earlier and found this which seems much easier than my above method:

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'

But again, it probably makes more sense to do this through SSMS. Good to know though...

离旧人 2024-10-01 09:54:59

您没有数据,因此将表编写为删除并重新创建。将字段更改为 Employeeid int Identity(1,1) not null。然后重新创建表。没有大惊小怪,没有混乱。

You have no data, so script the table as drop and recreate. The change the field to Employeeid int identity(1,1) not null. Then recreate the table. No fuss no muss.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文