Publications

SQL Server Data Tools - November 2012 Update

Davide Mauri

E’ stato rilasciato l’update di Novembre 2012 di SQL Server Data Tools. L’aggiornamento aggiunge il supporto alle nuove feature introdotte dalla SP1 di SQL Server 2012, oltre che l’aggiunta della notifica automatica di nuovi aggiornamenti.

Il blog post con i dettagli, direttamente dal team di sviluppo, è qui:

http://blogs.msdn.com/b/ssdt/archive/2012/11/07/sql-server-data-tools-november-2012-is-now-available.aspx

PASS Summit 2012 in Live Streaming!

Davide Mauri

Quest’anno al PASS Summit 2012 che inizia lunedi 5 Novembre con due giorni di pre-conference, c’è un grandissima novità, che si chiama PASS TV. Tutte le sessioni tenute nella sala 6E saranno trasmesse in diretta streaming e saranno fruibili gratuitamente da chiunque!

Qui l’agenda di tutte le sessioni che saranno trasmesse:

http://www.sqlpass.org/summit/2012/Sessions/MoreLearning/passtv.aspx

Un’occasione da non perdere! Sintonizzatevi qui:

http://www.sqlpass.org/summit/2012/

Insert Or update (aka Replace or Upsert)

Davide Mauri

Una delle necessità tipica degli sviluppatori è quella di inserire una riga oppure aggiornarne i valori se la riga è già presente. MySQL supporta il comando REPLACE:

http://dev.mysql.com/doc/refman/5.0/en/replace.html

oppure l’opzione INSERT . ON DUPLICATE KEY UPDATE:

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

Con SQL Server si può ottenre lo stesso funzionamento, in modo più standard, usando il comando MERGE ed i Row Constructors.

Partendo da questo esempio:

CREATE TABLE dbo.MyTargetTable
(
    id INT NOT NULL PRIMARY KEY IDENTITY,
    alternate_key VARCHAR(50) UNIQUE,
    col_1 INT,
    col_2 INT,
    col_3 INT,
    col_4 INT,
    col_5 INT
)
GO

INSERT [dbo].[MyTargetTable] VALUES
('GUQNH', 10, 100, 1000, 10000, 100000),
('UJAHL', 20, 200, 2000, 20000, 200000),
('YKXVW', 30, 300, 3000, 30000, 300000),
('SXMOJ', 40, 400, 4000, 40000, 400000),
('JTPGM', 50, 500, 5000, 50000, 500000),
('ZITKS', 60, 600, 6000, 60000, 600000),
('GGEYD', 70, 700, 7000, 70000, 700000),
('UFXMS', 80, 800, 8000, 80000, 800000),
('BNGGP', 90, 900, 9000, 90000, 900000),
('AMUKO', 100, 1000, 10000, 100000, 1000000)
GO

Per inserire o aggiornare una riga basta eseguire questo statement: