Tsql 设计器中的SSMS 15默认数据类型

Tsql 设计器中的SSMS 15默认数据类型,tsql,database-design,ssms,sqldatatypes,Tsql,Database Design,Ssms,Sqldatatypes,是否有任何方法可以强制SSMS(SQL Server Management Studio)15在设计器中使用我想要的默认数据类型创建列,在本例中是nvarchar(100)而不是nchar(10) 有趣的是,网上有一些关于这方面的想法,包括更改注册表,但是当我这样做并重新启动SSMS时,注册表只会恢复到nchar(10) 这让我想知道SSMS中是否有实现这一点的设置或选项?我已经扩展了选项中的每一棵树,但在那里我找不到任何东西 实际上我会考虑一个插件。 您可以修改这些值来更改注册表中的特定键。

是否有任何方法可以强制SSMS(SQL Server Management Studio)15在设计器中使用我想要的默认数据类型创建列,在本例中是
nvarchar(100)
而不是
nchar(10)

有趣的是,网上有一些关于这方面的想法,包括更改注册表,但是当我这样做并重新启动SSMS时,注册表只会恢复到
nchar(10)

这让我想知道SSMS中是否有实现这一点的设置或选项?我已经扩展了选项中的每一棵树,但在那里我找不到任何东西


实际上我会考虑一个插件。

您可以修改这些值来更改注册表中的特定键。

查找名为的注册表项:

  • SSVDefaultColumnType
  • SSVDEFAULTNCHARLENGHT
根据SSMS安装的确切版本,您可以在不同的路径中找到这些密钥

例如,使用SQL Server Management Studio 17.9.1,您可以在以下路径中找到这些密钥:

HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\14.0\DataProject

我将这些键的值更改为
varchar(50)

现在,我在表格编辑器中的默认类型/大小已更改为:


我决定发布一个答案,因为SSM的行为有点复杂

首先,对于版本18.5.1(最新版本,我正在使用的版本),注册表路径为:

HKEY\u CURRENT\u USER\Software\Microsoft\SQL Server Management Studio\18.0\u IsoShell\DataProject

正如其他人已经说过的那样,找到路径和钥匙并不困难

但是问题不是找到注册表项,而是当我在进行更改后重新启动编辑器时,SSMS正在恢复注册表项。由于编辑器在关闭时保存这些键,而我在失败后进行了更改(编辑器仍处于打开状态),因此这些键总是被覆盖

诀窍是在更改注册表之前关闭SSMS,这是我以前没有做过的。关于这一主题的每篇文章都指出必须“在进行更改后重新启动编辑器”,而正确的建议是“在进行更改之前关闭编辑器”


希望其他有同样问题的人会发现这很有用。

为什么不直接用T-SQL编写语句呢?你拥有了所有你想要的控件。你知道datetime2列的默认长度是否可以设置吗?它默认为datetime2(7),即使我在表设计器中显式键入datetime2(0)。我需要退出单元格并返回以将其更改为(0)。