Cambiare tipo a colonna tabella

martedì 27 aprile 2010 - 10.48

mauri1961 Profilo | Senior Member

durante il caricamento di una tabella attraverso un BULK INSERT mi viene segnalato un errore su due campi contenenti date (gg/mm/aaaa).
L'unico modi per far funzionare il caricamento della tabella è definire i campi data come char(10).

Mi chiedo: è possibile dopo il bulk insert con un'istruzione cambiare il tipo della colonna da char(10) a date. Questo è fondamentale per il funzionamento della conseguente pagina asp di ricerca per data.

ho provato con ALTER TABLE WEB_PUBB
MODIFY COLUMN DATA_PRATICA DATE

ma mi da errore di sintassi....


Grazie, Maurizio.

lbenaglia Profilo | Guru

>durante il caricamento di una tabella attraverso un BULK INSERT
>mi viene segnalato un errore su due campi contenenti date (gg/mm/aaaa).
>L'unico modi per far funzionare il caricamento della tabella
>è definire i campi data come char(10).
Guarda, non ho ancora trovato il tempo di fare dei test con l'esempio che hai postato, ma non sono d'accordo con quanto dici.

>Mi chiedo: è possibile dopo il bulk insert con un'istruzione
>cambiare il tipo della colonna da char(10) a date.
No. Una eventuale modifica di data type va fatto a monte, prima della BULK INSERT.
Ora non posso darti una mano, ma ti inviterei ad insistere ancora senza modificare il data type della colonna a stringa.

>Grazie, Maurizio.
Prego.

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

mauri1961 Profilo | Senior Member

io però utilizzando ALTER nome tabella ALTER nome campo DATE sono riuscito a caricare i dati e a visualizzarli sulle pagine asp.

Il problema è che ora mi trovo sul locale sql server in italiano e mi legge il file correttamente e sul server la versione inglese che sulla alter mi fa un pernacchione (giustamente)...

continuo a provare.....

Grazie, Maurizio

lbenaglia Profilo | Guru

>io però utilizzando ALTER nome tabella ALTER nome campo DATE
>sono riuscito a caricare i dati e a visualizzarli sulle pagine
>asp.
Non ti seguo. Che data type hai impostato?
Nel tuo script c'è:
... data_pratica date null, ...

E la BULK INSERT ti segnala l'arrore.

>Il problema è che ora mi trovo sul locale sql server in italiano
>e mi legge il file correttamente e sul server la versione inglese
>che sulla alter mi fa un pernacchione (giustamente)...
Vedi? Te l'ho detto che è un banale problema di lingua di default associata alla login (o si lingua corrente della sessione).

>continuo a provare.....
OK

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

mauri1961 Profilo | Senior Member

ho impostato data_pratica char(10) null

effettua la bulk insert

e dopo ALTER web_pubb alter column data_pratica date

funziona anche nella versione inglese mettendo set language italiano

che dici lascio così o prima o poi mi esplode tutto ?

Grazie, Maurizio.

lbenaglia Profilo | Guru

>ho impostato data_pratica char(10) null
>
>effettua la bulk insert
>
>e dopo ALTER web_pubb alter column data_pratica date
>
>funziona anche nella versione inglese mettendo set language italiano
>
>che dici lascio così o prima o poi mi esplode tutto ?
Non è questione di "prima o poi mi esplode tutto", ma piuttosto che ad ogni importazione devi rimodificare il data type.
Supponendo che le regional settings abbiano la lingua impostata ad italiano, hai provato ad eseguire la bcp specificando il parametro -R?

>Grazie, Maurizio.
Prego.

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

mauri1961 Profilo | Senior Member

a dire il vero non è necessario reimpostare perchè prima della bulk rieffettuo una alter contraria in modo che si prepari all'aggiornamento come char(10). Lo so è un po' arcaico....

Comunque grazie per la disponibilità, se e quando hai tempo avrei un problema con una stored procedure che è quella chepoi dovrebbe richiamarmi oltre a quelle sopra descritta anche altre query con bulk funzionanti. Ho postato un thread.... se na hai voglia e quando hai tempo.

Grazie, Maurizio
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