Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server VARCHAR(10)_Sql Server_Ssms - Fatal编程技术网

Sql server SQL Server VARCHAR(10)

Sql server SQL Server VARCHAR(10),sql-server,ssms,Sql Server,Ssms,在SQLServerManagementStudio 2005中设计表时,如果我为列指定VARCHAR(10),那么当我从数据类型中删除tab时,SQLServer会将其更改为VARCHAR(50)。然后我必须返回制表符,将其更改回VARCHAR(10),然后它将接受它 我知道在存储和处理方面的考虑可能会使VARCHAR(10)在所有意图和目的上等同于CHAR(10),但我是否遗漏了什么?是否有足够的理由我没有考虑,设计器的默认行为是自动更改我指定的列的长度?可能只是设计器中的一个错误。不,设计

在SQLServerManagementStudio 2005中设计表时,如果我为列指定VARCHAR(10),那么当我从数据类型中删除tab时,SQLServer会将其更改为VARCHAR(50)。然后我必须返回制表符,将其更改回VARCHAR(10),然后它将接受它


我知道在存储和处理方面的考虑可能会使VARCHAR(10)在所有意图和目的上等同于CHAR(10),但我是否遗漏了什么?是否有足够的理由我没有考虑,设计器的默认行为是自动更改我指定的列的长度?

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

不,设计器绝对没有理由更改数据类型。我无法在ManagementStudio 2008中复制它

如果您非常喜欢designer,请创建一个UDT(用户定义类型)并使用它,而不是
varchar(10)


不,这是SSMS中的一个错误,当您从字段中移出制表符时。这确实让人恼火。

我强烈建议切换到SQL Server的Toad以消除所有这些烦恼。

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

在ssms 2008中,如果您在其他地方不单击默认设置为varchar(50)的数据类型,这是一个错误。因此,不要担心,也无需思考,只需小心处理。

什么版本的Management studio?如果是2008年,您可以随时点击脚本按钮,将varchar 50更改回10。我从来没有遇到过这个问题,所以我假设它是您正在使用的版本中的一个错误。SSMS版本2005-添加到post。截至2011/04/28,仍然是SSMS 2008中的一个错误。我有“varchar(10)”列,我要改为“nvarchar(10)”。我点击字段,我添加一个“n”,我点击离开。。。SSMS将其更改为“nvarchar(50)”。事实上,我甚至尝试过将整个字符串“nvarchar(10)”粘贴到数据类型列中,当我单击离开时,它会将其重置为“nvarchar(50)”。这是一个巨大的错误。它还将varchar(1)列更改为varchar(10)。它似乎在将长度增加到下一个最高的台阶。所以任何小于10的都将变为10,从10到49的都将变为50。我使用的是SSMS 2005,所以看起来他们可能在2008年改变了(修复了)它。我知道2000年也是这样。无法编辑评论。我以为在SSEM2000中是这样的,但事实并非如此。应该不惜一切代价避免使用用户定义的类型。如果你曾经需要改变它们,它们是非常痛苦的。截至2011/04/28,在SSMS 2008中仍然是一个bug。不幸的是,对于我们大多数人来说,在我们的公司世界中,这不是一个选项。如果它不在已批准的列表中,则被禁止。截至2011/04/28,在SSMS 2008中仍然是一个错误。在SSMS 17.5中仍然发生在我身上。真不敢相信他们还没修好。
create type dbo.MyChar from varchar(10) not null