quarta-feira, 26 de novembro de 2014

Free Tools for SQL Server Professionals

http://ift.tt/1vmlveU

Looking for free SQL Server tools? Do you want recommendations from leaders in the SQL Community? Look no further than this summary from the panel discussion held this year at the Dev/IT Connections Conference in Las Vegas where that question was posed to the panelists.

read more



from SQL Server Pro http://ift.tt/1kCjeYg

terça-feira, 25 de novembro de 2014

MariaDB 10.0.15 now available

http://ift.tt/1FolzvU

Download MariaDB 10.0.15 Release Notes Changelog What is MariaDB 10.0? MariaDB APT and YUM Repository Configuration Generator The MariaDB project is pleased to announce the immediate availability of MariaDB 10.0.15. This is a Stable (GA) release. See the Release Notes and Changelog for detailed information on this release and the What is MariaDB 10.0? page… Continue reading

from The MariaDB Blog http://ift.tt/1pKKMuy

segunda-feira, 24 de novembro de 2014

Learn How to Deduplicate Data

http://ift.tt/1y8HvLe

Remove duplicate rows from a table
Discover a simple method for deduplicating data.

read more



from SQL Server Pro http://ift.tt/1kCjeYg

Oracle HA & DR Basics for SQL Server Professionals

http://ift.tt/1r2JzEb

Oracle and SQL Server offer a robust set of HA/DR functionality, but the naming is wildly different. In this video, Jeremiah Peschka will cover the tools, technology, and terminology needed...
Views: 15
0 ratings
Time: 16:58 More in Science & Technology


from Uploads by Brent Ozar ULTD http://ift.tt/1mza5Qd

quinta-feira, 20 de novembro de 2014

MySQL - World's Most Popular Open Source Database

http://ift.tt/1r1RlIK

MySQL is the world's most popular open source database. Learn the facts in the video! Subscribe to the MySQL Youtube channel and watch more tutorials and presentations: ...
From: MySQL
Views: 0
0 ratings
Time: 00:36 More in Science & Technology


from Uploads by MySQL http://ift.tt/1v3N4ZM

Log de alterações de uma tabela, quando CDC não está disponível ;)


O script abaixo, cria um banco de dados de teste, e uma tabela chamada "Acesso" com uma trigger que registra todas as alterações feitas na tabela "Acesso" em uma tabela histórico chamado "acessohist".

Por favor, note que todas as mudanças estão sendo logadas como um valor XML. Isso porque uma tabela de log tadicional pode ser um problema de manutenção pois uma vez que você tem uma nova coluna (ou altera um tipo de dado ou nome de coluna) em seu banco de dados, pode ser necessário rever a tabela de log e gatilhos .

Claro, isto é para todos vocês que usam Standard Edition, porque no Enterprise você tem CDC. Não custa lembrar que triggers podem apresentar problemas de desempenho.

USE [master] 

go 

/****** Table Log Example ******/ 
CREATE DATABASE [dbTestTrigger] 

go 

USE [dbTestTrigger] 

go 

CREATE TABLE [dbo].acesso 
  ( 
     [superior]    [VARCHAR](120) NOT NULL, 
     [propriedade] [VARCHAR](120) NOT NULL, 
     [descricao]   [VARCHAR](140) NULL, 
     [especial]    [CHAR](1) NOT NULL DEFAULT ('F'), 
     [idacesso]    [INT] IDENTITY(1, 1) NOT NULL, 
     PRIMARY KEY CLUSTERED ( [idacesso] ASC ) 
  ) 
ON [PRIMARY] 

go 

CREATE TABLE [dbo].[acessohist] 
  ( 
     [idacessohist] [INT] IDENTITY(1, 1) NOT NULL, 
     [data]         [DATETIME] NULL DEFAULT (Getdate()), 
     [texto]        [XML] NULL, 
     PRIMARY KEY CLUSTERED ( [idacessohist] ASC ) 
  ) 
ON [PRIMARY] 
textimage_on [PRIMARY] 

go 

CREATE TRIGGER trglogaccessdef 
ON [dbo].[acesso] 
after INSERT, DELETE, UPDATE 
AS 
  BEGIN 
      SET nocount ON; 

      DECLARE @Text XML; 

      SET @Text = (SELECT *, 
                          SYSTEM_USER AS LoginName 
                   FROM   deleted 
                   FOR xml auto) 

      IF @Text IS NOT NULL 
        BEGIN 
            INSERT INTO [dbo].[acessohist] 
                        (texto) 
            VALUES      (@Text) 
        END 

      SET @Text = NULL 
      SET @Text = (SELECT *, 
                          SYSTEM_USER AS LoginName 
                   FROM   inserted 
                   FOR xml auto) 

      IF @Text IS NOT NULL 
        BEGIN 
            INSERT INTO [dbo].[acessohist] 
                        (texto) 
            VALUES      (@Text) 
        END 
  END 

go 

--

Rodrigo 

Loggin changes in table, when CDC is not an option


The script bellow, creates a test database, and a table named "acesso" with a trigger that logs all changes made to the "acesso" table into a historic table named "acessohist".

Please note that all changes are logged in as a XML value. That is because a tadicional logging table might be a mantainance issue, because, once you have a brand new column (or change a columns data type or name, for that matter) in your database, you might need to review the log table and triggers.

Of course, this is for all of you that use SQL SERVER Standard edition, because on Enterprise, you have CDC.

USE [master] 

go 

/****** Table Log Example ******/ 
CREATE DATABASE [dbTestTrigger] 

go 

USE [dbTestTrigger] 

go 

CREATE TABLE [dbo].acesso 
  ( 
     [superior]    [VARCHAR](120) NOT NULL, 
     [propriedade] [VARCHAR](120) NOT NULL, 
     [descricao]   [VARCHAR](140) NULL, 
     [especial]    [CHAR](1) NOT NULL DEFAULT ('F'), 
     [idacesso]    [INT] IDENTITY(1, 1) NOT NULL, 
     PRIMARY KEY CLUSTERED ( [idacesso] ASC ) 
  ) 
ON [PRIMARY] 

go 

CREATE TABLE [dbo].[acessohist] 
  ( 
     [idacessohist] [INT] IDENTITY(1, 1) NOT NULL, 
     [data]         [DATETIME] NULL DEFAULT (Getdate()), 
     [texto]        [XML] NULL, 
     PRIMARY KEY CLUSTERED ( [idacessohist] ASC ) 
  ) 
ON [PRIMARY] 
textimage_on [PRIMARY] 

go 

CREATE TRIGGER trglogaccessdef 
ON [dbo].[acesso] 
after INSERT, DELETE, UPDATE 
AS 
  BEGIN 
      SET nocount ON; 

      DECLARE @Text XML; 

      SET @Text = (SELECT *, 
                          SYSTEM_USER AS LoginName 
                   FROM   deleted 
                   FOR xml auto) 

      IF @Text IS NOT NULL 
        BEGIN 
            INSERT INTO [dbo].[acessohist] 
                        (texto) 
            VALUES      (@Text) 
        END 

      SET @Text = NULL 
      SET @Text = (SELECT *, 
                          SYSTEM_USER AS LoginName 
                   FROM   inserted 
                   FOR xml auto) 

      IF @Text IS NOT NULL 
        BEGIN 
            INSERT INTO [dbo].[acessohist] 
                        (texto) 
            VALUES      (@Text) 
        END 
  END 

go 


quarta-feira, 19 de novembro de 2014

terça-feira, 18 de novembro de 2014

AlwaysOn Availability Groups and SQL Server Jobs, Part 15: Setting Up Linked Servers

http://ift.tt/1wTKinl

Learn about setting up Linked Server definitions to let two (or more) servers in an AlwaysOn Availability Group talk to each other and check up on job statuses of jobs running on each other.

read more



from SQL Server Pro http://ift.tt/1kCjeYg

My Summary of PASS Summit 2014

http://ift.tt/1yiixXW

Well, it's over. It was fun. It was exciting. It was educating. But it's over. PASS Summit 2014 was a great success, as always.

read more



from SQL Server Pro http://ift.tt/1kCjeYg