[HowTo] From MS Access to SQL Server

11 05 2008

Some days ago, when I was ar work, I had a “small” problem:

I must import a MS Access database to a SQL Server Database

At the first time, I thinked the follows idea:

  • From Access: Export Data -> Not Work
  • From ODBC: Create an ODBC driver and try to connect with it -> Not Work

Other idea? Oh yes … I think to use the ADP. What do you do? Read it step by step:

  1. On SQL Server create a new database (data destination)
  2. On MS Access: File -> New -> “project using existing data…” and select the server (SQL) and the database destination (it was created on step 1)
  3. On MS Access: Import the table from the mdb file (source database) and you can do it with: File -> Load External Data* -> Import
  4. Select all table (or only the table you need)
  5. Please wait …
  6. When the process end, you can have the data on your SQL Server Database

Is it not difficult ;)

* I’m not sure of the name of this menu … It’s the 3th row under file.





[Emozioni] Non a tutti gli informatici succede …

15 03 2008

Caro diario,

voglio raccontarti una cosa che mi è successa ieri al lavoro. Avevo da fare una query su una tabella di un database (SQL Server 2005) un pò particolare. La particolarità non è per la query che è una cavolata, ma per la mole di filtri da inserire. In pratica da una tabella da tanti XMila record dovevo filtrarne YMila facendo una WHERE secca su un campo e su un altro campo dovevo escludere quelli presenti in un elenco (11700 per l’esattezza) e così mi sono messo a preparare la query in excel sfruttando le macro. La prima versione era del tipo:

SELECT * FROM Tabella WHERE Campo1 = Valore1 AND Campo2 NOT IN ( ‘Val1′, [...] , ‘Val11700′) ORDER BY NomeCampo

La situazione non era delle più snelle, così ho coinvolto LadyChobin per vedere se assieme si trovava una query più snella. Il mio neurone ha avuto una bellissima idea ed ha cambiato la macro per ottenere la seguente query:

SELECT * FROM Tabella WHERE Campo1 = Valore1 AND (Campo2 <> ‘Val1′ AND [...] AND Campo2 <> ‘Val11700′) ORDER BY NomeCampo

Ero ottimista e l’ho lanciata con qua la LadyChobin. Abbiamo visto, per la prima volta entrambe, il seguente errore:

Msg 8631, Level 17, State 1, Line 1
Internal error: Server stack limit has been reached. Please look for potentially deep nesting in your query, and try to simplify it.

Mi ha fatto i complimenti, a lei non era mai successo di fare una query di dimensioni elevate che producesse questo errore. Così siamo tornati alla NOT IN ed abbiamo atteso il risultato.

Quando ha finito, l’ho chiamata e le ho detto “19″ e mi ha chiesto se avesse finito. Le ho risposto si … ci mancava solo che avesse altro da fare dopo tutto quel tempo! Ad esser sinceri ci ha messo esattamente 18 minuti e 42 secondi per estrarre 3961 records.

Dai, LadyChobin ammettilo che ti rode che quell’errore l’ho avuto io e non te … ihihihih …

Ahhh … che bello essere informatici … vediamo cose che voi umani nemmeno si immaginano :P





Update & Inner Join

7 01 2007

Nel seguente esempio viene mostrato come creare un istruzione di update relazionando due tabelle:

UPDATE t1
SET myField1 = ‘New Value 1′ ,
myField2 = ‘New Value 2′
FROM Table1 t1
INNER JOIN Table2 t2
ON t1.myKey1 = t2.myKey2
WHERE ( t1.myWhereField1 = ‘hello’)

Ora buon divertimento e aggiornamento :)





Valore minino e massimo, media e somma

22 12 2006

Ti è mai capitato di dover fare delle operazioni (Valore minino e massimo, media e somma) su valori numeri in SQL Server? Vediamo come

Leggi il seguito di questo post »





[SQL Server] IF EXISTS - Esistono Record che … ?

14 06 2006

Molte volte capita, soprattutto in presenza di trigger, che prima di eseguire una query dobbiamo verificare se realmente vi siano dei record coinvolti oppure no.
Leggi il seguito di questo post »





[SQL Server] Ottenere l’elenco delle tabelle

5 05 2006

Molte volte ti interessa avere l’elenco completo delle tabelle presente in un database.
Leggi il seguito di questo post »





[SQL Server] Numero di righe coinvolte in più query

20 04 2006

Tempo fà abbiamo visto come l’istruzione @@ROWCOUNT ci permette di ottenere il numero dei record coinvolti nell’ultima istruzione SQL. Ora vediamo come sfruttare questa opzione su un blocco di istruzioni e tornare il valore finale all’utente.
Leggi il seguito di questo post »





[SQL Server] Eseguire Query in transazione

17 03 2006

Il seguente esempio si preoccupa di far capire come eseguire via script una serie di query in un blocco transazionale ed effettuare il commit o il rollback in base alla situazione finale.

Leggi il seguito di questo post »





[SQL Server] Convertire intero a stringa

17 03 2006

Di seguito un breve esempio su come estrarre un campo intero dal database ed in seguito convertirlo in stringa.

Leggi il seguito di questo post »





[SQL Server] Alternativa al COUNT(*)

6 03 2006

Spesso per calcolare quanti record sono presenti in una tabella facciamo un semplice …

Leggi il seguito di questo post »