Campo byte access in sql server

di il
6 risposte

Campo byte access in sql server

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

  • Re: Campo byte access in sql server

    In sql server i campi boolean sono di tipo BIT.

    Al momento della migrazione ti porrai il problema. 

  • Re: Campo byte access in sql server

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

  • Re: Campo byte access in sql server

    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?

  • Re: Campo byte access in sql server

    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

  • Re: Campo byte access in sql server

    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 …

  • Re: Campo byte access in sql server

    Grazie mille ad entrambi, perdonatemi se rispondo solo ora…

Devi accedere o registrarti per scrivere nel forum
6 risposte