我们有一个5GB的表(近5亿行),我们希望删除其中一列的identity属性,但当我们试图通过SSMS执行此操作时,它会超时.

这可以通过T-SQL实现吗?

推荐答案

一旦设置了IDENTITY规格,就不能删除.

要删除整个列,请执行以下操作:

ALTER TABLE yourTable
DROP COLUMN yourCOlumn;

这里有大约ALTER TABLE条信息

如果需要保留数据,但删除IDENTITY列,则需要:

  • 创建一个新列
  • 将数据从现有的IDENTITY列传输到新列
  • 删除现有的IDENTITY列.
  • 将新列重命名为原始列名

Sql相关问答推荐

每个时间间隔总和的PostgreSQL窗口函数

需要解决办法通过传递过程参数而不是声明表行类型来声明表类型

如何计算帐户在SQL中随着时间的推移购买的SKU数量?

SQL计数所有值在联接范围内的行

如何在幂函数中正确使用Power()和Exp()

正在编写查询.我需要将订阅的时间段分为第一个订阅中包含的另一个订阅之前和之后的时间段

如何使用SQL Server中的Nodes()方法执行与OPENXML相同的操作

重用传递给 node 的参数-postgres upsert查询

在子窗口SQL Presto中使用特定条件执行值计数

在 SQL Server 中合并两个 XML 列

确定小数中使用的精度位数

如何查询自引用 comments 表以查找带有回复的 comments ,并按最新回复排序?

递归 CTE 附加为行

snowflake中的动态文件名生成

SQL获取两个日期范围之间的计数

使用 GROUP BY 时如何创建其他组?

使用 PL/PGSQL 函数 Select 返回多条记录

Select 给定类别列表(或更多类别)中的所有事物

面对来自以下两个代码的不同输出

PostgreSQL Select 具有两列的自引用