Risorse

Raccolta di materiali utili per studiare e lavorare meglio: guide, tool, repository, libri e documentazione. Le risorse coprono SQL Server, Azure e Data Platform in generale, includendo integrazione, automazione, BI/analytics e data engineering, organizzate per argomento.

SQL Server Team-based Development

Sergio Govoni

Dal sito Red-Gate è possibile scaricare gratuitamente l’eBook: SQL Server Team-based Development degli autori Phil Factor, Grant Fritchey, Alex Kuznetsov e Mladen Prajdic.

L’eBook spiega come utilizzare in modo congiunto Script, SQL Server Tools e alcuni toolbelt di Red Gate per implementare applicazioni database lavorando in team. Il live motive è quello di ricondurre un progetto d’implementazione database ad un “normale” progetto di sviluppo… utilizzando gli strumenti che SQL Server e Red Gate mettono a disposizione.

Oggetti che dipendono da una tabella: DROP e ADD FOREIGN KEY CONSTRAINT

Sergio Govoni

Ci si può trovare nella situazione di dover eliminare e ricreare (successivamente) le dipendenze (FOREIGN KEY) da una tabella alterando gli oggetti che dipendono da essa.

Pensiamo, ad esempio, alla necessità di eliminare e ricreare una tabella che ha integrità referenziale con altre, uno degli step necessari è appunto l’eliminazione delle dipendenze (FOREIGN KEY) sugli oggetti che dipendono dalla tabella da ricreare.

Il seguente comando T-SQL permette di individuare facilmente i comandi di eliminazione e ripristino delle FOREIGN KEY sulle tabelle che dipendono dalla tabella citata nella clausola WHERE del comando.

Primi e Ultimi Trigger

Sergio Govoni

Qualora una tabella avesse molteplici trigger AFTER sullo stesso tipo di comando INSERT, UPDATE o DELETE, vi siete mai chiesti quale fosse l’ordine di attivazione?

Scenario

Ipotizziamo di utilizzare la tabella dbo.Product su cui insistono alcuni (tre) trigger AFTER di tipo INSERT. Con il seguente frammento di codice T-SQL eseguiamo il setup della tabella dbo.Product sul database di esempio AdventureWorks.

use [AdventureWorks];
go

-- Setup table dbo.Product
if OBJECT_ID('dbo.Product', 'U') is not null
  drop table dbo.Product;
go

create table dbo.Product
(
  ProductID varchar(25) not null
  ,LocationID varchar(20) not null
  ,Quantity decimal(9, 2) not null
  ,ModifiedDate date not null default getdate()
  ,Status bit not null default 1
  ,constraint PK_Product_ProductID_LocationID primary key(ProductID, LocationID)
);
go

Dopo aver definito la struttura della tabella dbo.Product eseguiamo la creazione dei trigger di tipo INSERT, per semplicità ogni trigger eseguirà il PRINT di un messaggio informativo che ci permetterà di analizzare l’ordine di attivazione.