Sql - Server / Administração

  • Trigger de Banco de Dados
Este exemplo é show, vamos criar uma tabela de log do banco de dados e ela será alimentada por uma trigger que iremos criar, ou seja, qualquer alteração feita no banco de dados a mesma será gravada nesta tabela de documentação. Abaixo segue o exemplo:

1º criando a tabela de Log.

CREATE TABLE TAB_LOG_BANCO
(
ID INT IDENTITY PRIMARY KEY ,
EventType Varchar(100) ,
PosTime Varchar(100) ,
ObjectType Varchar(100) ,
ObjectName Varchar(250) ,
CommandText Text ,
Data Datetime
)


2° criando a trigger no Banco de Dados.

CREATE TRIGGER TR_LOG_BANCO ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS BEGIN

DECLARE @DATA XML;
SET @DATA = EVENTDATA();

INSERT INTO TAB_LOG_BANCO
( EventType , PosTime , ObjectType , ObjectName , CommandText , Data )
VALUES
(
@DATA.value ( '(/EVENT_INSTANCE/EventType)[1]' , 'VARCHAR (100)' ),
@DATA.value ( '(/EVENT_INSTANCE/PosTime)[1]' , 'VARCHAR (100)' ),
@DATA.value ( '(/EVENT_INSTANCE/ObjectType)[1]' , 'VARCHAR (100)' ),
@DATA.value ( '(/EVENT_INSTANCE/ObjectName)[1]' , 'VARCHAR (250)' ),
@DATA.value ( '(/EVENT_INSTANCE/TSQLComammd/CommandText)[1]' , 'VARCHAR (5000)' ),
getdate() );
END

Abraços...


  • Linked Server
O comando abaixo mostra de uma forma bem simples a criação de um Linked Server via linguagem Transact-sql.

---------------------------------------------------------
exec sp_addlinkedserver 'instancia'
exec sp_addlinkedsrvlogin
                                         @rmtsrvname   = 'instancia' ,
                                         @useself          = 'false' ,
                                         @rmtuser         = 'login',
                                         @rmtpassword = 'senha'
---------------------------------------------------------