Campo comentado SQL Server

11/02/2013

0

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"
Rodrigo Cezar

Rodrigo Cezar

Responder

Posts

22/02/2013

Joel Rodrigues

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: [url]http://www.ninjacode.com.br/post/2011/03/14/DescComments-no-SQL-Server.aspx[/url].
Se dá pra fazer direto no script de create, não sei, mas pode ser que já tenha sido adicionada essa funcionalidade.
Boa sorte.
Responder

26/02/2013

Joel Rodrigues

Amigo, você achou outra forma de fazer?
Responder

27/02/2013

Jair N.

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...

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"
Responder

28/02/2013

Joel Rodrigues

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

08/03/2013

Marcio

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

Exemplo:

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


falow!!
Responder

18/02/2014

Ana Lunardi

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.

/*

-- 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;
Responder

09/11/2022

Diego

Ana Lunardi, como posso utilizar essa trigger? Onde precisa estar posicionado o comentário?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar