SQL
There are 13 entries for the tag
SQL
Utilizzando LINQ possiamo creare facilmente comandi per interrogare basi di dati SQL direttamente da codice, con tutti i vantaggi derivanti dalla type-safety e dal controllo dei parametri a tempo compilazione. In alcuni casi, tuttavia, ad esempio quando si realizza un sito Internet e, in particolare, il suo motore di ricerca interno, può capitare di dover eseguire interrogazioni su un database utilizzando una serie più o meno lunga di parametri impostati dall'utente (ad esempio, ricerca di prodotti solo in una certa categoria, con vincoli sul prezzo e sulla disponibilità, ecc.). Questa funzionalità può essere realizzata creando manualmente la query SQL, ovvero...
SQL Server 2005 mette a disposizione due comandi T-SQL che consentono di cifrare e decifrare una stringa utilizzando una chiave simmetrica: EncryptByPassPhrase e DecryptByPassPhrase. Essi utilizzano una passphrase per generare la chiave simmetrica che viene utilizzata per eseguire le vere e proprie operazioni, rispettivamente, di cifratura e decifratura del testo specificato. Technorati Tags: Certification, SQL Server, SQL
Chi lavora abitualmente con i database relazionali lo sa bene: non si deve mai utilizzare la clausola SELECT * in una query SQL. I motivi di questa cosa sono diversi, ma uno dei principali riguarda l'efficienza: se si usa l'asterisco, il DBMS deve interrogare i metadati della tabella per sapere quali colonne contiene, quindi è richiesto un tempo di elaborazione maggiore, che si può facilmente evitare indicando espressamente i nome delle colonne da restituire. Technorati Tags: SQL
Per valutare il tempo di esecuzione di un comando T-SQL, può essere utile l'istruzione SET STATISTICS TIME ON
Essa va digitato nella finestra della query subito prima del comando o della stored procedure da provare. Fatto questo, dopo l'esecuzione, spostandosi nella scheda Messages di SQL Server Management Studio si può osservare un riassunto dei tempi di parsing, compilazione ed esecuzione della query.
Technorati Tags: Certification, SQL Server, SQL
Ancora una volta devo ringraziare Alessandro Del Sole, che nel suo blog ci annuncia la disponibilità di un debug visualizer, scritto dall'inimitabile Scott Guthrie, per visualizzare le query SQL generate automaticamente dal sistema quando si utilizza LINQ-to-SQL. Rimando al post ufficiale per maggiori informazioni e per il link al download.
Technorati Tag: Visual Studio,LINQ,SQL
SQL Server 2005 consente di criptare/decriptare i campi di un record utilizzando chiavi simmetriche, asimmetriche e certificati digitali. Ad esempio, per creare una chiave simmetrica si deve usare la seguente istruzione:
CREATE SYMMETRIC KEY ChiaveSimmetrica WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'pippo';
A questo punto, è possibile utilizzare le funzioni EncryptByKey e DecryptByKey di SQL Server, rispettivamente, per criptare e decriptare i dati specificati. Perché la procedura sia corretta, tuttavia, è necessario aprire la chiave simmetrica prima di richiamare tali funzioni, altrimenti il loro risultato sarà sempre NULL. Detto in codice:
OPEN SYMMETRIC KEY ChiaveSimmetrica DECRYPTION BY PASSWORD = 'pippo'
INSERT INTO...
.NET offre un oggetto chiamato SqlDependency che consente di ottenere notifiche per ogni modifica effettuata su un database di SQL Server 2005. Il suo utilizzo è relativamente semplice, ma richiede qualche accortezza nella configurazione del database e nella scrittura delle query, come spiegato in questo post.
Technorati Tags: .NET, Programming, SQL, SQL Server
Scenario: sulla macchina A ho un database in cui ho definito un utente con il diritto di db_owner; effettuo il backup di tale database (il DMBS è SQL Server 2005) e lo ripristino su una macchina B. Se, a questo punto, tramite l'SQL Server Management Studio sulla macchina B tento di eliminare l'utente in questione, ottengo un errore secondo cui non è possibile procedere perché tale utente è il proprietario di uno schema del database.
Questa situazione mi è già capitata almeno tre o quattro volte. In un caso del genere, per "trasferire" il diritto di db_owner, in modo che sia possibile procedere all'eliminazione dell'utente, è necessario eseguire...
L'applicazione che sto sviluppando recupera una serie di informazioni da una base di dati, comprese alcune date. Poiché i campi datetime nel database ammettono il valore null, per manipolare le date utilizzo il tipo Nullable<DateTime>, grazie al quale riesco facilmente a capire se nessuna data è stata specificata nella base di dati. Questo sistema ha però un problema. Supponiamo di dover aggiornare un campo datetime, inserendo al suo interno il valore null. Se io creo un oggetto SqlParameter di tipo SqlDbType.DateTime (con il parametro chiamato @dataScandenza) e imposto la sua proprietà Value su null, andando ad eseguire il metodo SqlCommand.ExecuteNonQuery...
In alcuni casi casi si può avere l'esigenza di eseguire stored procedure dinamiche, ad esempio quando il formato delle condizioni di una clausola WHERE dipende da determinati parametri di input. In situazioni del genere viene in aiuto l'istruzione EXEC di SQL Server, il cui funzionamento è spiegato in questo articolo.
Technorati Tags: SQL, SQL Server
In questi ultimi tempi mi è capitato di dover definire alcune viste su un DB di SQL Server 2005. Allo scopo ho utilizzato SQL Server Management Studio. Senza pensarci, nella vista ho aggiunto una clausola ORDER BY. Nel momento in cui ho premuto il pulsante Execute SQL, il Management Studio ha automaticamente aggiunto TOP 100 PERCENT subito dopo la parola SELECT. Incuriosito dalla cosa, ho fatto una ricerca su Internet e sono arrivato a due interessanti articoli: questo e questo. Ripensando con calma alla cosa, mi sono ricordato che l'argomento era già stato trattato qui sul Muro, ma solo adesso...
La nuova versione di SQL Server Compact 3.5 Beta 2, oltre ad essere inclusa in Visual Studio 2008, è da qualche giorno disponibile anche come download separato. Notare che il termine "Edition" sembra stato eliminato. Il download del runtime è disponibile qui, mentre a questo indirizzo sono disponibili i Server Tools.
Technorati tags: SQL, SQL Server, ADO .NET, Updates
A questo indirizzo è disponibile il video di un sessione di circa 30 minuti che mostra l'utilizzo di LINQ to SQL. In esso vengono trattati i seguenti aspetti:
Object Model
Select/Insert/Update/Delete
Stored Procedure Support
Linq to Sql designer
Technorati Tags: LINQ, SQL