Domanda

Non tanto una domanda quanto un'osservazione ...

Sto solo aggiornando a SQL Server 2008 sulla mia macchina di sviluppo in previsione dell'aggiornamento delle mie applicazioni live. Non ho previsto alcun problema poiché [penso] generalmente utilizzo lo standard T-SQL e probabilmente non troppo lontano dallo standard ANSI SQL. Fin qui tutto bene, ma sono stato davvero colpito da un cambiamento molto semplice:

Stavo creando una tabella di ricerca semplice e piccola per memorizzare un elenco di codici e includendo una colonna di bit per indicare il codice predefinito corrente. Ma quando ho usato l'opzione "Modifica le prime 200 righe" nuove / modificate e ho inserito i miei 0 e 1 nella colonna dei bit ho ricevuto un errore:

  

'Valore non valido per cella - Stringa era   non riconosciuto come booleano valido '

Dopo un po 'di graffi alla testa, ho provato True and False - e hanno funzionato.

Quindi sembra che questa nuova funzione di modifica richieda la digitazione di 4 o 5 caratteri, anziché il precedente 1.

Controllando ulteriormente, possiamo ancora usare ' ... where bitval = 1 ' ma ora possiamo anche usare ' ... where bitval =' true ''. Ma qualsiasi risultato restituito rende queste colonne di bit come 0 o 1 ancora.

Sembra tutto mezzo passo indietro. Non la fine del mondo, ma un fastidio inutile.

Qualcuno ha qualche idea su questo problema? O ci sono altri nuovi Gotcha con SQL Server 2008?

Aggiornamento 2012: Avendo appena installato SQL Server 2012, noto che questo comportamento è stato "corretto". Proprio come prima, ora posso inserire 1/0 anziché True / False direttamente nelle righe, usando l'opzione "Modifica le prime 200 righe". È una piccola cosa, ma sono felice.

È stato utile?

Soluzione

Tranne che l'hanno fatto saltare e hanno imposto solo la metà della regola Prova a usare ... = Vero in un'istruzione di aggiornamento e vedi cosa succede. O andare fino in fondo o per niente. Mi dispiace Microsoft, non posso darti alcun segno su quello

Altri suggerimenti

Sei sempre stato in grado di usare "Vero" e "Falso" per confrontare le colonne BIT ... Penso che questa modifica a "forza". è bene essere chiari sul fatto che il campo è un BIT e non un INT.

Personalmente, mi piace che C # non supporti " if (0) ... " Immagino sia solo una preferenza per la chiarezza.

Ho appena trovato questo (dopo aver preparato tutto il resto) Costruito in base al design

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top