【问题标题】:How to change column type in sql server 2008如何在 sql server 2008 中更改列类型
【发布时间】:2015-01-19 17:56:07
【问题描述】:

如果列包含数百万行,如何更改sql server中列的数据类型?

我试试这个应该可以的。

 alter table employee
 alter column dob datetime

但我得到一个错误。

也就是说 - 表包含大量数据或已满您无法更改数据类型。

【问题讨论】:

  • 从什么到什么?显然,如果列是 nvarchar 并且包含各种内容,它将无法将其转换为 datetime - 为什么要转换?
  • 从 smalldatetime 到 datetime
  • 马里人 = 数百万? :P 您是否尝试过创建新列、设置数据然后删除旧列?如有必要,您最终可以重命名该列,如下所述:stackoverflow.com/questions/16296622/…
  • 表格没有“满” - 也许您应该在此处复制并粘贴实际的错误消息。
  • WHAT 你得到了什么错误?

标签: c# sql-server-2008


【解决方案1】:

请采取以下步骤:

  1. 创建具有所需数据类型和新名称的新列
  2. 使用旧列的转换值更新该列的值
  3. 删除旧列
  4. 将新名称重命名为旧名称

如果你往这边走,你可以看到,问题出在哪里:

  • 第 1 步 - 您没有权利?
  • 第 2 步 - 转换出现问题
  • 第 3 步 - 我猜有一些外键或索引将这个列保存在适当的位置

【讨论】:

    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多