Campo comentado SQL Server

SQL Server

11/02/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"
Rodrigo Cezar

Rodrigo Cezar

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

11/02/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: [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.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

11/02/2013

Amigo, você achou outra forma de fazer?
GOSTEI 0
Jair N.

Jair N.

11/02/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...

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"
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

11/02/2013

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

Marcio

11/02/2013

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!!
GOSTEI 0
Ana Lunardi

Ana Lunardi

11/02/2013

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;
GOSTEI 0
Diego

Diego

11/02/2013

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