完全限定的引用对象名称的最大长度

时间:2014-01-03 11:10:53

标签: sql-server tsql

我想确认完全限定的SQL Server对象名的最大长度。

如果您同意,请在下面给出答案。 (我不会获得这些投票的积分)

目前我制定了以下内容:

  • 数据类型应为nvarchar
  • 完全限定的对象名称为<Server>.<Database>.<Schema>.<Object>
  • 每个部分可以有128个字符(sysname = nvarchar(128)
  • 128个字符串的
  • quotename()最大(128*2)+2(每个字符转义+打开和关闭方括号)
  • 每个名称部分由.
  • 分隔

这会使(((128*2)+2)*4)+3 = 1035

由此我得出公式:(((128*2)+2)*@nr_of_name_parts)+(@nr_of_name_parts-1)

我认为公式是正确的,因为插入3个部分最终会得到776,这恰好是sp_recompile过程的参数长度

1 个答案:

答案 0 :(得分:2)

(根据Mikael Eriksson的评论,以社区维基回答我的问题)

  • 数据类型应为nvarchar
  • 完全限定的对象名称为<Server>.<Database>.<Schema>.<Object>
  • 每个部分可以包含128个字符(sysname = nvarchar(128)
  • 128个字符串的
  • quotename()最大(128*2)+2(每个字符转义+打开和关闭方括号)
  • 每个名称部分由.
  • 分隔

这会使(((128*2)+2)*4)+3 = 1035

由此我得出公式:(((128*2)+2)*@nr_of_name_parts)+(@nr_of_name_parts-1)

我认为这个公式是正确的,因为插入3个部分最终会得到776,这恰好是sp_recompile程序的参数