在SQL Server Management Studio 2005中设计表时,如果我为列指定VARCHAR(10),当我选择远离数据类型时,SQL Server会将其更改为VARCHAR(50)。我必须然后选项卡,将其更改回VARCHAR(10),然后它将接受它。
据我所知,存储和处理注意事项可能会使VARCHAR(10)等同于CHAR(10)用于所有意图和目的,但是有什么我缺少的吗?是否有足够的理由让我不考虑,设计师的默认行为是自动更改列的长度与我指定的一致?
答案 0 :(得分:9)
不,当您离开某个字段时,这是SSMS中的一个错误。它确实很刺激。
答案 1 :(得分:4)
可能这只是设计师的一个错误。
答案 2 :(得分:2)
我强烈建议永远不要使用设计器来创建表或更改表结构。您应该为此编写一个create table或alter table语句并将其放入源代码管理中。然后,它更容易部署到生产。
答案 3 :(得分:0)
不,设计师绝对没有理由改变数据类型。我无法在Management Studio 2008中重现它。
如果您是设计师,请创建一个UDT(用户定义类型)并使用它而不是varchar(10)
:
create type dbo.MyChar from varchar(10) not null
答案 4 :(得分:0)
我强烈建议切换到 Toad for SQL Server 以摆脱所有这些烦恼..
答案 5 :(得分:0)
这是ssms 2008中的一个错误,当你去其他地方时没有点击默认设置为varchar(50)的数据类型..所以不要担心,不需要思考,只需仔细处理它。