Campo byte access in sql server

di zio Ken il
6 risposte

Buonasera a tutti,

dovendo progettare un database che in futuro verrà trasferito su sqlserver, mi è sorto un dubbio

Avendo diversi campi in access di tipo si/no (byte), nel caso dovessi migrare in sql server, come viene convertito tale campo??

Conserva la tipologia byte o conviene transformarlo in numerico quindi con 0 o 1?

6 Risposte

  • In sql server i campi boolean sono di tipo BIT.

    Al momento della migrazione ti porrai il problema. 

  • Https://learn.microsoft.com/it-it/sql/t-sql/data-types/bit-transact-sql?view=sql-server-ver16

  • Grazie mille per le celeri risposte.

    @Toki

    Nel caso in cui volessi evitare di incorrere in problemi quale tipo di campo mi consigli di utilizzare invece del byte?

  • Secondo me puoi lasciarlo così. Se poi hai un problema per la conversione, crei un campo numerico di appoggio, ci copi la rappresentazione del dato 0=falso, 1 = vero e converti questo in bit

  • La rappresentazione Si/No in Access viene risolta come -1 (True), 0 (False).

    Se la migrazione a MSSQL Server comporta l'abbandono di Access non solo come BackEnd ma anche come FrontEnd allora ti consiglio, in fase di migrazione dei dati di moltiplicare il campo Si/No (Access) per -1 in modo da ottenere 0 oppure 1 per MSSQL Server (magari poi trovi dei tools di conversione che lo fanno nativamente).

    Se invece continui a mantenere Access come FrontEnd collegato a MSSQL Server come BackEnd probabilmente ti conviene mantenere il valore del campo nello stile di Access (0 e -1) in modo da poter utilizzare nel VBA di Access espressioni di questo tipo (su campi Boolean) :

    If BooleanField then
    	'Vero
    else
    	'Falso
    Endif

    Avendo 1 come valore di True allora ti converrebbe passare a questo approccio (Vba) :

    If not BooleanField then
    	'Falso
    else
    	'Vero
    Endif

    Potresti anche scriverti una funzione in VBA che ti converta -1 oppure 1 in True … vedi tu …

  • Grazie mille ad entrambi, perdonatemi se rispondo solo ora…

Devi accedere o registrarti per scrivere nel forum
6 risposte