T-Sql

Conoscere la data/ora dell'ultimo user UPDATE su una tabella

Sergio Govoni

Come posso conoscere la data e l’ora dell’ultimo UPDATE eseguito su una tabella da parte di un utente ?

Una delle DMVs (Index Related Dynamic Management Views and Functions), disponibili dalla versione 2005 di SQL Server, ci permette di rispondere a questa domanda.

Possiamo infatti utilizzare la DMV sys.dm_db_index_usage_stats che con i sui differenti contatori, basati sulle operazioni eseguite sugli indici, ci permette di conoscere, ad esempio, la data e l’ora dell’ultimo comando UPDATE eseguito su una determinata tabella.

Microsoft TechDays WPC 2008

Davide Mauri

Microsoft TechDays-WPC 2008 offrirà opportunità di formazione e aggiornamento professionale di elevato profilo su tutto il panorama delle tecnologie Microsoft, con un’agenda di 68 sessioni teorico-pratiche tenute da speaker selezionati tra i migliori esperti Microsoft e tra i professionisti maggiormente riconosciuti sul mercato. 

Per maggior informazioni su agenda, costi ed iscrizioni, il sito alla quale fare rifermento è:

http://www.techdays-wpc2008.it/

Non manchera lo spazio community ed una importante selezione di sessioni di dedicate alla piattaforma SQL Server!

Posso spostare un set righe con un'unica istruzione?

Davide Mauri

L’uso della calusola OUTPUT nel comando di DELETE, fornisce una valida e più compatta alternativa allo spostamento transazionale di un set di righe.

Date due tabelle [T_Source] e [T_Target], con la frase “spostare un set di righe da T_Source a T_Target” intendiamo la sequenza di operazioni:

  1. copia le righe interessate di [T_Source] in [T_Target]
  2. elimina le righe interessate da [T_Source]

Il tutto compreso in una transazione con gestione dell’errore.

In T-SQL (a partire da SQL 2005) si potrebbe schematizzare così:

Come eliminare un utente di database che sia owner di uno schema

Davide Mauri

Cosa accade se tento di eliminare un utente di database che sia owner di uno schema? Semplicemente mi viene impedito. Occorre, infatti, che prima elimini lo schema. Per far ciò serve che esso sia “vuoto”, cioè che ad esso non appartenga nessun oggetto (tabella, stored procedure, etc..). Nel caso non sia vuoto, devo cancellare i suoi oggetti o trasferirli in un altro schema con l’istruzione T-SQL

ALTER SCHEMA [nuovo schema] TRANSFER [schema da cancellare].[nome oggetto da trasferire]