Importazione dati da Access a Sql, problema "NULL"

venerdì 25 giugno 2010 - 15.52

andy78lecce Profilo | Newbie

ciao a tutti, sto effettuando la migrazione dei dati relativi all'applicativo gestionale dell'azienda in cui lavoro.
L'applicativo è stato acquistato e non posso essere fatte delle modifiche (se non dal produttore...)

Il mio problema è il seguente:

Ho importato i dati dal Db Access al Db creato in SQL mediante il wizard integrato in sql management studio, la migrazione è andata a buon fine.

I problemi stanno cominciando adesso, ve li descrivo:

colonne di tipo SI/NO in access convertite in colonne di tipo bit in SQL, se non flaggo "ammetti null", in caso di non inserimento del dato mi da errore, se lo flaggo mi da errore uguale perchè come valore predefinito scrive "null" e non 0 o stringa vupta come avveniva nel db access.

Devo andare a manina ad impostare il valore predefinito in ogni colonna delle tabelle del DB?

C'è una soluzione meno laboriosa?

Spero di essere stato chiaro.

Grazie

TOPOAMORE Profilo | Expert

>ciao a tutti, sto effettuando la migrazione dei dati relativi
>all'applicativo gestionale dell'azienda in cui lavoro.
>L'applicativo è stato acquistato e non posso essere fatte delle
>modifiche (se non dal produttore...)
>
>Il mio problema è il seguente:
>
>Ho importato i dati dal Db Access al Db creato in SQL mediante
>il wizard integrato in sql management studio, la migrazione è
>andata a buon fine.
>

e fin qui tutto bene

>I problemi stanno cominciando adesso, ve li descrivo:
>
>colonne di tipo SI/NO in access convertite in colonne di tipo
>bit in SQL, se non flaggo "ammetti null", in caso di non inserimento
>del dato mi da errore, se lo flaggo mi da errore uguale perchè
>come valore predefinito scrive "null" e non 0 o stringa vupta
>come avveniva nel db access.

cmq non scrive null ma e solo visualizzato


>Devo andare a manina ad impostare il valore predefinito in ogni
>colonna delle tabelle del DB?

quindi il problema dopo la migrazione e che vuoi impostare a 0 il valore predefiniti di tutti i campi bit???

>C'è una soluzione meno laboriosa?

vai in SSMS --> progetta tabella e imposta a 0 il valore predefinito del campo che ti interessa

>Spero di essere stato chiaro.
>
>Grazie
>
Prego

__.__.__.__.__.__

ASP 2.0 - VB 2008

lbenaglia Profilo | Guru

>I problemi stanno cominciando adesso, ve li descrivo:
>
>colonne di tipo SI/NO in access convertite in colonne di tipo
>bit in SQL, se non flaggo "ammetti null", in caso di non inserimento
>del dato mi da errore, se lo flaggo mi da errore uguale perchè
>come valore predefinito scrive "null" e non 0 o stringa vupta
>come avveniva nel db access.
In SQL Server Il data type binario è appunto bit e può assumere i valori 0 e 1 ed eventualmente il non valore NULL nel caso la colonna non sia valorizzata.
Se la tabella sorgente di Access ha alcune righe per cui la colonna SI/NO risulta essere non valorizzata, allora dovrai necessariamente accettare i NULL nella tabella di destinazione.

>Devo andare a manina ad impostare il valore predefinito in ogni
>colonna delle tabelle del DB?
Dipende dal risultato che vuoi ottenere.
Se nel caso in cui la colonna non sia valorizzata in fase di INSERT vuoi che sia automaticamente valorizzata a 0 dovrai definire su di essa un constraint di tipo DEFAULT.
Nel caso in cui tu abbia importato i dati e ti ritrovi diverse righe con la colonna bit non valorizzata (NULL) puoi sistemare le cose eseguendo un banale comando di UPDATE:

UPDATE schema.tabella SET ColonnaBit = 0 WHERE ColonnaBit IS NULL;

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

TOPOAMORE Profilo | Expert

In effetti avevo detto una m.....ta visto che se imposti il valore default a 0 dopo aver importato le righe non modifica le precedenti....

Scusatemi
__.__.__.__.__.__

ASP 2.0 - VB 2008
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5