sql-server - 改变列长度

标签 sql-server

我需要更改 500 多个表中的列 column_length 的长度,并且这些表可能没有记录,范围从 10 条记录到 3 或 4 百万条记录。

  1. 该列可能只是普通列
CREATE TABLE test(column_length varchar(10))
  • 该列可能包含非聚集索引。
  • CREATE TABLE test(column_length varchar(10))
    CREATE UNIQUE NONCLUSTERED INDEX column_length_ind ON test (column_length)
    
  • 该列可能包含 PRIMARY KEY 聚集索引
  • CREATE TABLE test(column_length varchar(10))
    ALTER TABLE test ADD PRIMARY KEY CLUSTERED INDEX ON column_length
    
  • 该列可能是复合主键

  • 该列可能有外键引用

  • 简而言之,column_length 列可以是任何内容。

    我所需要的只是创建脚本来将column_length 的长度从varchar(10) 更改为varchar(50)。我应该在更改之前删除索引然后重新创建它们吗?主键和外键呢?

    通过我的研究和测试,我发现我可以在不删除主键或任何索引的情况下更改列的长度,但必须单独删除并重新创建外键。

    这个假设正确吗?

    最佳答案

    是的,您应该能够修改列。根据我的经验,保留索引和主键会更快。

    关于sql-server - 改变列长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134058/

    相关文章:

    sql - 计算差异

    sql - 为什么在 View 中添加 ROW_NUMBER 需要花费太多时间来执行?

    sql-server - SqlBulkCopy 无法将 "0"、 "1"bool 值解析为数据库表上的 BIT

    sql - Web 应用程序 SQL Server 上用户/角色的最佳实践

    sql-server - Sql Server 2005 全文搜索中的干扰词

    asp.net - 即使在防火墙设置中将选项设置为 yes,Azure SQL Server 防火墙也不允许连接操作

    sql-server - SQL 查询获取每个博客帖子的最新用户评论仅限于每个用户一个?

    sql-server - SQL Server Management Studio 中出现 "cannot execute script"错误

    mysql - SQL Server 查询在 SQLServer 中运行良好,但相同的查询不适用于 JDBI

    c# - 我们如何从 SQL Server CLR 调用 SSL Web 服务?