Sql-Server

Calcolo progressivo via Cte e operatore Apply

Davide Mauri

Sql 2005, come è universalmente noto, ha introdotto, rispetto al predecessore, molte novità. Quello che ci interessa qui è un uso intrecciato e non standatd delle nuove Common Table Expression [cte] ricorsive e dell’operatore Apply.

L’idea base del funzionamento di una cte ricorsiva è abbastanza semplice, si consideri il set di dati S1. Mettendo questo set in join con altro posso ottenere un set di dati S2 che supporremo avere una struttura identica [Colonne e tipi] a S1. Fatto ciò è possibile usare S2 al posto di S1 per generare S3 e così via finché l’operazione non genera più alcun record. I risultati S1, S2, S3, S4… ottenuti, avendo la stessa identica struttura, saranno restituiti come concatenazione di records tramite union all. Questo genere di strutture sono perfette per la gestione dei dati ricorsivi, volendo estrarre da un’organigramma una persona e tutti i suoi sottoposti, si può procedere come sopra con:

Pro SQL Server 2005 Database Design and Optimization

Davide Mauri
TitoloPro SQL Server 2005 Database Design and OptimizationAutoreLuis Davidson with Kevin Kline and Kurt WindischEditoreApressLivelloIntermediate-AdvancedISBN1-59059-529-7

Il libro di Luis Davidson è la naturale evoluzione della precedente versione scritta per SQL Server 2000. La prerogativa di questo libro – così come del precedente – è la focalizzazione non solo sull’uso di SQL Server come prodotto con tutte le sue feature e le sue peculiari caratteristiche, ma anche e soprattutto sulla parte architetturale dell’implementazione di un database, ossia la modellazione del database stesso.

SMO ... questo sconosciuto ?

Davide Mauri

Diciamoci la verità. Il lavoro quotidiano di un informatico è quello di trovare soluzioni a problemi che nella maggior parte delle volte sono veramente complicati.

Per poter affrontare queste problematiche, ognuno si crea una propria cassetta degli attrezzi da cui attingere (con un’abilità più da prestigiatore che da informatico) pezzi di codice, tools vari o quant’altro possa servire.

You may receive an error message when you try to run distributed queries from a 64-bit SQL Server 2005 client to a linked 32-bit SQL Server 2000 server or to a linked SQL Server 7.0 server

Davide Mauri

Se utilizzato SQL Server 2005 su una piattaforma a 64bit e cercate di creare un linked server verso un SQL Server 2000 vi potreste imbattere in un errore di questo tipo:

The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator. Msg 7311, Level 16, State 2, Line 1 Cannot obtain the schema rowset “DBSCHEMA_TABLES_INFO” for OLE DB provider “SQLNCLI” for linked server “”. The provider supports the interface, but returns a failure code when it is used.