Symptomen

Neem het volgende scenario:

  • In een SQL Server 2000-database hebt u een kolom in een tabel die is geconfigureerd voor een specifieke standaardwaarde.

  • U deze database bijwerken naar een nieuwere versie van SQL Server (SQL Server 2005 of SQL Server 2008 of SQL Server 2008 R2).

In dit scenario ziet u dat, in de bijgewerkte versie, de standaardwaarde voor de kolom heeft een extra haakje omheen en elke toepassing die is gecodeerd om te accepteren van de oorspronkelijke standaardwaarden van SQL Server 2000 zal mislukken. In de volgende tabel ziet u hoe verschillende versies van SQL Server een standaardwaarde van 0 opslaan in de tabellen met catalogusmetagegevens:

Versie

SQL Server 2000

SQL Server 2005 of hoger

Waarde

0

((0))

Opmerking: dit probleem is alleen van invloed op numerieke waarden. Tekst en functies worden opgeslagen in dezelfde indeling in zowel SQL Server 2000 als de nieuwere versies. Tekst wordt bijvoorbeeld opgeslagen als ('tekst '), functie () wordt opgeslagen als (functie ()).

Oorzaak

Dit gedrag is per ontwerp. De nieuwere versies van SQL Server verschillen van SQL Server 2000 op de manieren waarop ze decoderen en opslaan van SQL-expressies in de metagegevens van de catalogus. Raadpleeg voor meer informatie de verschillende koppelingen die worden vermeld in de sectie meer informatie van dit artikel.

Oplossing

Wijzig uw toepassingen zodat ze de standaardwaarden in de nieuwe indeling accepteren. Als uw toepassing bijvoorbeeld is ontworpen om de standaardwaarde "(0)" te verwachten, die een enkele set haakjes rond een numerieke waarde heeft, wijzigt u uw toepassing om twee haakjes "((0))" te verwachten, zodat deze blijft werken met SQL Server 2005 en hoger versies van de database.

Meer informatie

De standaardwaarden voor een kolom weergeven: U een van de volgende twee methoden gebruiken om de momenteel geconfigureerde standaardwaarden voor een kolom weer te geven:methode 1: SQL Server Management Studio gebruiken:

  1. Klik in object Verkenner met de rechtermuisknop op de tabel met de kolommen waarvoor u de standaardwaarden wilt controleren en klik op ontwerp om de tabel in de ontwerpfunctie voor tabellen te openen.

  2. Selecteer de kolom waarvoor u de standaardwaarde wilt controleren.

  3. In het tabblad Kolomeigenschappen vindt u de standaardwaarde in de standaardwaarde of binding eigenschap zoals weergegeven in de onderstaande afbeeldingen:

Methode 2: gebruik een van de volgende systeemweergaven:

  • sys. default_constraints : gebruik de kolomdefinitie om de vereiste informatie op te halen.

  • sys. syscomments -gebruik de tekstkolom in deze weergave om de benodigde informatie te verkrijgen. Opmerking: deze systeemtabel van SQL Server 2000 is opgenomen als een weergave voor achterwaartse compatibiliteit. Het is raadzaam dat u de huidige SQL Server-systeemweergaven in plaats daarvan gebruiken. Als u wilt zoeken naar de equivalente systeemweergave of weergaven, zie de koppelingen onder Aanvullende verwijzingen hieronder.

Aanvullende verwijzingen:

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×