2010-09-20 16 views
42

¿Alguien sabe cómo agregar una descripción a una columna de SQL Server ejecutando un script? Sé que puede agregar una descripción cuando crea la columna usando SQL Server Management Studio.agregando una descripción de columna

¿Cómo puedo hacer una secuencia de comandos para que cuando mis scripts SQL creen la columna, también se agregue una descripción para la columna?

+8

Bueno, es un DB heredado y los nombres de las columnas fueron descriptivos para la persona que escribió las columnas hace 5-6 años, pero no tienen mucho sentido para mí. Hay muchas reglas de negocio que van junto con las columnas, por lo que sería bueno tener una descripción práctica del por qué la columna está allí. Me imagino que comenzamos nuestro código ¿por qué no deberíamos comentar la Base de datos? – EJC

+0

Gotcha. Entendido. –

Respuesta

47

Yo diría que probablemente quiera hacerlo usando el procedimiento almacenado sp_addextendedproperty.

Microsoft tiene una buena documentación en él, pero también se puede ver en el siguiente enlace:

http://www.eggheadcafe.com/software/aspnet/32895758/how-to-set-description-property-with-alter-table-add-column.aspx

Prueba esto:

EXEC sp_addextendedproperty 
    @name = N'MS_Description', @value = 'Hey, here is my description!', 
    @level0type = N'Schema', @level0name = 'yourschema', 
    @level1type = N'Table', @level1name = 'YourTable', 
    @level2type = N'Column', @level2name = 'yourColumn'; 
GO 
+1

Soy un poco idiota cuando se trata de SQL, solo aprendo lo que necesito cada vez que lo necesito y nada más, así que perdónenme cuando hago esta pregunta ridícula. ¿Cómo averiguo qué es "yourschema"? – EJC

+2

@EJC, es muy probable que "dbo" –

+2

sea probablemente 'dbo', es lo predeterminado cuando se crea una tabla. por lo general, los nombres de su tabla se mostrarán así: "{something} .tableName". el {soemthing} es el esquema. –

6
EXEC sys.sp_addextendedproperty @name = N'MS_Description', 
@value = N'extended description', 
@level0type = N'SCHEMA', 
@level0name = N'dbo', 
@level1type = N'TABLE', 
@level1name = N'Table_1', 
@level2type = N'COLUMN', 
@level2name = N'asdf' 

Crear secuencia de comandos en la tabla [dbo]. [Table_1]

18

Esto funciona para mí. Los argumentos relevantes se indican con pequeñas flechas.

EXEC sys.sp_addextendedproperty 
    @name=N'MS_Description' 
,@value=N'Here is my description!' --<<<< 
,@level0type=N'SCHEMA' 
,@level0name=N'dbo' 
,@level1type=N'TABLE' 
,@level1name=N'TABLE_NAME' --<<<< 
,@level2type=N'COLUMN' 
,@level2name=N'FIELD_NAME' --<<<< 
+0

Esta respuesta usa el valor apropiado 'nombre' (MS_Description) para que la descripción aparezca en el diseñador de la tabla ventana. Esto no es del todo necesario, pero es conveniente y una buena forma de llamar la atención sobre la presencia de propiedades extendidas en una columna. – AperioOculus

0

En MS SQL Server Management Studio 10.0.55, la manera más fácil es:

  • mostrar las columnas de la tabla en la ventana Explorador de objetos
  • clic derecho en la columna de interés y haga clic en la opción "Modificar"
  • mirada en la ventana "Propiedades de columna" (abajo a la derecha en mi interfaz gráfica de usuario) \
  • mirada en el "Diseñador de tablas" subsección
  • modificar el valor de la "Descripción" fila
  • Haga clic en la "x" en la parte superior derecha de la ventana de modificación de columnas/pestaña
  • respuesta "y" cuando dice aplicar los cambios

Si a continuación, haga clic derecho en su tabla en la ventana del Explorador de objetos y haga clic en Propiedades, luego haga clic en "Propiedades extendidas", debería ver su comentario.

Nota: si realiza el comando "Tabla de scripts como" para la tabla, la columna "Descripción" anterior aún no aparece como un comentario para la columna. En cambio, muestra una llamada extra sp_addextendedproperty después de crear la tabla. Mediocre.

Cuestiones relacionadas