代码之家  ›  专栏  ›  技术社区  ›  Rich.Carpenter

SQL Server varchar(10)

  •  6
  • Rich.Carpenter  · 技术社区  · 16 年前

    在SQL Server Management Studio 2005中设计表时,如果为列指定varchar(10),则当我远离数据类型选项卡时,SQL Server会将其更改为varchar(50)。我必须返回制表位,将其更改回varchar(10),然后它将接受它。

    我知道有一些存储和处理方面的考虑,可能会使varchar(10)在所有意图和目的上都等同于char(10),但是是否有我遗漏的东西?是否有足够的理由不考虑设计器的默认行为是自动更改列的长度,而不是我指定的长度?

    6 回复  |  直到 16 年前
        1
  •  9
  •   BBlake    16 年前

    不,这是SSMS中的一个错误,当你离开一个字段时。它确实会让人恼火。

        2
  •  4
  •   Mladen Prajdic    16 年前

    可能只是设计师的一个错误。

        3
  •  2
  •   HLGEM    16 年前

    我强烈建议不要使用设计器创建表或更改表结构。您应该为此编写一个create table或alter table语句,并将其放入源代码管理中。然后更容易部署到生产环境中。

        4
  •  0
  •   Anton Gogolev    16 年前

    不,设计器绝对没有理由更改数据类型。我不能在2008管理工作室复制它。

    如果您对Designer很感兴趣,请创建一个UDT(用户定义的类型)并使用它来代替 varchar(10) :

    create type dbo.MyChar from varchar(10) not null
    
        5
  •  0
  •   ercan    16 年前

    我强烈建议切换到 用于SQL Server的Toad 为了摆脱这些烦恼……

        6
  •  0
  •   user186435    16 年前

    这是SSMS 2008中的一个bug,当您不单击数据类型而去其他地方时,它将默认设置为varchar(50)。因此,不要担心,也不需要考虑,只要小心处理它。