SQL Server - Pouvez-vous ajouter une description des champs dans CREATE TABLE?
-
22-09-2019 - |
Question
Je vois beaucoup de messages sur l'endroit où la description du champ de vie propriété étendue et comment je peux l'obtenir, mais rien à ajouter ces derniers à l'étape CREATE TABLE.
Je suis dynamiquement la création de tableaux afin d'ajouter dynamiquement des descriptions de terrain serait une chose bien rangé à faire, mais je ne peux pas voir une certaine manière.
Quelqu'un at-il réussi à le faire?
La solution
Alors que vous ne pouvez pas le faire en CREATE TABLE
, vous pouvez le faire en même temps, dans le même script de base de données, en utilisant cette approche :
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
Ensuite, vous pouvez voir vos entrées en utilisant ceci:
SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)
Autres conseils
Je ne crois pas que Create Table T-SQL supporte. Toutefois, si vous définissez vos tables via SSMS, vous pouvez facilement accéder au niveau de la table et les commentaires au niveau de la colonne en même temps vous créez votre table.
En plus de ce qui précède, vous pouvez également utiliser SSMS pour le faire. Dans SSMS, un clic droit sur la table, sélectionnez Propriétés, puis cliquez sur « Propriétés étendues » (sur le volet de gauche). Sur le volet de droite, au milieu, il y a une boîte « Propriétés », cliquez là pour donner votre description un nom et un texte, comme le montre l'image ci-joint
SQL Server fournit une procédure stockée système qui vous permet d'ajouter des descriptions, une paire nom-valeur à la fois
Exemple comme suit:
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
Vous devez répéter pour chaque NVP Description
Hope this helps