当前位置: 首页 > 知识库问答 >
问题:

将不同表中的列从INT更改为BIGINT

梁华皓
2023-03-14

我需要在不同的表中将一列从INT更改为BIGINT。问题是其中一些表中有约束、索引、键和数据;其中一些是相互关联的。为了完成这项工作,我制定了一系列步骤,我将感谢您的意见。

>

  • 标识表中的列。SELECTSCHEMA_NAME(schema_id)ASschema_name,t.nameAStable_name,c.nameAScolumn_nameFromsys.tablesAS t INNER JOINsys.columnsc ON t.OBJECT_ID=c.OBJECT_IDWHERE 1=1 ANDc.name'%列名%'ORDER BYschema_name,table_name;

    选择一个表并生成脚本来创建和删除每个约束、键和索引。

    创建一个与所选表具有相同结构的新表,但将所需列创建为BIGINT而不是INT。

    将旧表中的行插入新表。

    为旧表中的每个约束、键和索引运行DROP脚本。

    删除旧表中的所有行。

    更改旧表,将所需列从INT修改为BIGINT。

    为旧表中的每个约束、键和索引运行创建脚本。

    将新表中的行插入到旧表中。

    转到步骤2,选择另一个表并重复。

    你认为这是个好计划吗?我也很感激任何关于备份计划的建议。

  • 共有1个答案

    戚峻
    2023-03-14

    为什么不改变列数据类型呢?转换<代码>整数-

    ALTER TABLE dbo.yourTable
       ALTER COLUMN yourColumnName BIGINT
    
     类似资料:
    • 问题内容: 我有一个仓库表,里面有16吨数据。我有一些整数列。对于我们编写的每个查询,我们都必须将它们转换为BIGINT,因为SUM太大而无法容纳在INT中。 现在,我们正在开发一个新的数据集市。因此,我们认为,为什么不将所有这些列都更改为BIGINT呢?对于新的查询集,我们不必担心。 由于数据已经加载,因此我认为我将使用Management Studio并更改数据类型。但是我首先得到一个警告:

    • 是否可以使用列表中的数据更改列名? 我有我的新标签如下: 是否可以使用上述列表中的数据更改名称?我的原始数据集有100列,我不想为每列手动执行此操作。 我尝试使用df.rename执行以下操作,但不断出现错误。谢谢

    • 这不会改变我的标签。只有第一个运行,其他的不会改变。在Java摇摆中,它起作用了,但在Javafx中没有。

    • 字段的datatype可以从Nvarchar更改为int吗?? 这个有效吗??如果不能,可以用其他方法吗??

    • 本文向大家介绍在MySQL中将列名从StudentName更改为FirstName?,包括了在MySQL中将列名从StudentName更改为FirstName?的使用技巧和注意事项,需要的朋友参考一下 使用带有ALTER语句的CHANGE。让我们首先创建一个表- 现在检查表的描述- 输出结果 这将产生以下输出- 这是使用ALTER的查询- 现在再次检查表的描述- 输出结果 这将产生以下输出-