SQL服务器 VARCHAR(10)

问题描述 投票:6回答:7

当在SQL Server Management Studio 2005中设计表时,如果我为一列指定了VARCHAR(10),当我用tab离开数据类型时,SQL Server将其改为VARCHAR(50)。然后,我必须返回选项卡,把它改回VARCHAR(10),然后它就会接受它。

我明白,出于存储和处理方面的考虑,VARCHAR(10)可能会等同于CHAR(10),但我是否遗漏了什么?是否有足够的原因是我没有考虑到的,设计器的默认行为是自动改变我指定的列的长度?

sql-server ssms
7个回答
9
投票

不,这是SSMS中的一个bug,当你从一个字段上用tab离开时。 它确实很烦人。


4
投票

可能这只是设计器中的一个错误。


2
投票

我强烈建议永远不要使用设计器来创建表或改变表结构。你应该为此写一个创建表或改变表的语句,并把它放到源代码控制中。这样部署到生产中就比较容易了。


0
投票

不,设计师完全没有理由改变数据类型。而且我在Management Studio 2008中无法重现。

如果你这么喜欢designer,可以创建一个UDT(User-Defined Type,用户定义类型),然后用它代替 varchar(10):

create type dbo.MyChar from varchar(10) not null

0
投票

我强烈建议改用 适用于SQL Server的蟾蜍 摆脱所有这些烦恼。


0
投票

这是ssms2008中的一个bug,当你去别的地方时,不点击数据类型,它就会默认设置为varchar(50)......所以不用担心,也不用考虑,只要小心处理就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.