SQL Server - можно ли добавить описания полей в CREATE TABLE?
Я вижу много сообщений о том, где живет расширенное свойство описания поля и как я могу его получить, но ничего о добавлении их на этапе создания таблицы.
Я динамически создаю таблицы, поэтому динамически добавлять описания полей было бы аккуратно, но я не вижу способа.
кому-нибудь удалось это сделать?
4 ответов
пока вы не можете сделать это CREATE TABLE
, вы можете сделать это одновременно, в том же скрипте базы данных, используя этот подход:
CREATE table T1 (id int , name char (20))
EXEC sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id
EXEC sp_addextendedproperty 'MS_Description', 'Employee Name', 'user', dbo, 'table', 'T1', 'column', name
тогда вы можете увидеть свои записи, используя это:
SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)
Я не верю, что оператор Create Table T-SQL поддерживает это. Однако, если вы определяете свои таблицы с помощью SSMS, вы можете легко вводить комментарии уровня таблицы и уровня столбца одновременно с созданием таблицы.
в дополнение к вышесказанному, вы также можете использовать SSMS для этого. В SSMS щелкните правой кнопкой мыши таблицу, выберите Свойства, Затем нажмите "расширенные свойства" (на левой панели). На правой панели, в середине, есть поле "свойства", нажмите там, чтобы дать вашему описанию имя и некоторый текст, как показано на прилагаемом рисунке
SQL Server предоставляет системную хранимую процедуру, которая позволяет добавлять описания, по одной паре имя-значение за раз
пример:
EXEC sys.sp_addextendedproperty
@name=N'Column 2 Description' -- Give your description a name
, @value=N'blah blah 2 for a specific column' -- Actual description
, @level0type=N'SCHEMA'
, @level0name=N'dbo'
, @level1type=N'TABLE'
, @level1name=N'MyTestTable' -- Name of your table
GO
вам придется повторить для каждой пары имя-значение описания
надеюсь, что это помогает