SQL Server: максимальная длина символов в именах объектов

#sql-server #sql-server-2008 #tsql

#sql-сервер #sql-server-2008 #tsql

Вопрос:

Какова максимальная длина символов имени объекта (например, ограничения, столбца) в SQL Server 2008?

Ответ №1:

128 символов. Это максимальная длина sysname типа данных ( nvarchar(128) ).

Ответ №2:

Да, она равна 128, за исключением временных таблиц, длина имен которых может составлять не более 116 символов. Это прекрасно объяснено здесь.

И проверка может быть легко выполнена с помощью следующего сценария, содержащегося в предыдущем сообщении в блоге:

 DECLARE @i NVARCHAR(800)
SELECT @i = REPLICATE('A', 116)
SELECT @i = 'CREATE TABLE #' @i '(i int)'
PRINT @i
EXEC(@i)
  

Комментарии:

1. Я думаю, что под «проверкой» вы, возможно, имели в виду «тест» или «верификацию». Я прав?

2. @Jaime Спасибо, что научил меня новому слову, тебе следовало оставить его в ответе.

Ответ №3:

Вы также можете использовать этот скрипт для получения дополнительной информации:

 EXEC sp_server_info
  

Результат будет примерно таким:

 attribute_id | attribute_name        | attribute_value
-------------|-----------------------|-----------------------------------
           1 | DBMS_NAME             | Microsoft SQL Server
           2 | DBMS_VER              | Microsoft SQL Server 2012 - 11.0.6020.0
          10 | OWNER_TERM            | owner
          11 | TABLE_TERM            | table
          12 | MAX_OWNER_NAME_LENGTH | 128
          13 | TABLE_LENGTH          | 128
          14 | MAX_QUAL_LENGTH       | 128
          15 | COLUMN_LENGTH         | 128
          16 | IDENTIFIER_CASE       | MIXED
           ⋮  ⋮                       ⋮
           ⋮  ⋮                       ⋮
           ⋮  ⋮                       ⋮