Array
(
)

Campo comentado SQL Server

Rodrigo Cezar
   - 11 fev 2013

Pessoal, no sql server há comentário nos campos, mas é muito trabalhoso fazer pelo design
Há alguma forma de criar o comentário na hora que está criando o campo ?
Create table tabela (
id int "comentário"

Joel Rodrigues
   - 22 fev 2013

Amigo, se não me engano isso só é feito através de procedures, após a criação da tabela (meio chato, né?). Nesse link é explicado: http://www.ninjacode.com.br/post/2011/03/14/DescComments-no-SQL-Server.aspx.
Se dá pra fazer direto no script de create, não sei, mas pode ser que já tenha sido adicionada essa funcionalidade.
Boa sorte.

Joel Rodrigues
   - 26 fev 2013

Amigo, você achou outra forma de fazer?

Jair A.n.
   - 27 fev 2013

Bom dia, um comando simples pode resolver seu problema...

EXEC sys.sp_addextendedproperty "MS_Description", "@COMENTARIO", "user", "dbo", "table", "@TABELA", "column", "@COLUNA
onde:
@COMENTARIO
@TABELA
@COLUNA
Assim se tornam definidos por vossa senhoria...

Citação:
Pessoal, no sql server há comentário nos campos, mas é muito trabalhoso fazer pelo design
Há alguma forma de criar o comentário na hora que está criando o campo ?

Create table tabela (
id int "comentário"

Joel Rodrigues
   - 28 fev 2013

Pois é, é o que tem no link que eu indiquei.
Amigo, conseguiu resolver?

Marcio
   - 08 mar 2013

o mais simples de utilizar é dois traços --

Exemplo:

#Código
--Tabela de produtos
create table produtos (
idProduto int, --campo id
descricao varchar(100) --campo descrição do produto
)


falow!!

Ana Lunardi
   - 18 fev 2014

Uma solução para quem não se conforma em ter que ficar executando sp pra poder registrar o comentário.
Só há uma restrição: Ao incluir um comentário na criação de campos de uma tabela (Create ou Alter Table). Colocar comentário no padrão /* texto_do_comentario */

Enjoy.

#Código/*

-- Cria trigger de DDL para monitorar eventos do DATABASE
CREATE TRIGGER ddl_trigger_addComentario
ON DATABASE
FOR DDL_TABLE_EVENTS
AS
DECLARE @data XML
DECLARE @tabela nvarchar(100)
DECLARE @comando nvarchar(2000)
DECLARE @evento nvarchar(100)
DECLARE @campo nvarchar(200)
DECLARE @campo_aux nvarchar(200)
DECLARE @comentario varchar(200)

SET @data = EVENTDATA()
SET @tabela = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'nvarchar

(100)')
SET @comando = @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar

(2000)')
SET @evento = @data.value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar

(100)')

DECLARE cr_campos CURSOR LOCAL FOR select COLUMN_NAME from

INFORMATION_SCHEMA.COLUMNS where table_name = @tabela order by

ORDINAL_POSITION

IF (@evento = 'CREATE_TABLE')OR (@evento = 'ALTER_TABLE')
BEGIN

OPEN cr_campos
FETCH NEXT FROM cr_campos INTO @campo
WHILE @@FETCH_STATUS = 0
BEGIN
SET @campo_aux = '%'+@campo+' %'
IF (PATINDEX(@campo_aux, @comando) > 0)
BEGIN
SET @comando = SUBSTRING(@comando,PATINDEX

(@campo_aux, @comando),LEN(@comando))
IF (PATINDEX('%*/%', @comando) > 0)
BEGIN
SET @comentario = SUBSTRING

(@comando,PATINDEX('%/*%', @comando)+2,
(PATINDEX('%*/%', @comando)-PATINDEX('%/*%',

@comando))-2)

SET @comentario = LTRIM(@comentario)
SET @comentario = RTRIM(@comentario)

EXEC sys.sp_addextendedproperty
@name=N'Descricao de Coluna',
@value=@comentario,
@level0type=N'SCHEMA',
@level0name=N'dbo',
@level1type=N'TABLE',
@level1name=@tabela,
@level2type=N'COLUMN',
@level2name=@campo

SET @comando = SUBSTRING(@comando,PATINDEX

('%/*%', @comando)+2,LEN(@comando))

END
END

FETCH NEXT FROM cr_campos INTO @campo
END

CLOSE cr_campos
DEALLOCATE cr_campos

END;