Hi!
Ich experimentiere heute das erste Mal mit dem MS SQL Server 7.0 herum und stoße beim „create table“ auf einen Fehler, die ich nicht lösen kann.
Mein SQL-Statement sieht so aus:
Create table BAUMBESTAND
(NR integer not null default autoincrement,
GEBIET char(30),
BAUMART char(30)
SCHADEN char(1),
GROESSE numeric(3,1),
DATUM datetime,
PRIVAT bit)
Mein Problem:
Das „autoincrement“ wird mit dieser Fehlermeldung abgewiesen:
Server: Nachr.-Nr. 128, Schweregrad 15, Status 1, Zeile 2
Der Name ‚autoincrement‘ ist in diesem Kontext nicht zulässig. Nur Konstanten, Ausdrücke oder Variablen sind hier zulässig. Spaltennamen sind nicht zulässig.
Warum?
Andere Frage:
Gibt es im MS SQL Server die Möglichkeit, einen Bool ähnlich wie in Access darzustellen, also aus einer 0 ein „Nein“ und aus einer 1 ein „Ja“ zu machen?
Grüße
Heinrich
Hallo
Ersetzte die NR zeile mit folgender
NR int NOT NULL IDENTITY (1, 1),
gruss
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Zu deiner zweiten Frage
DECLARE @Test BIT
SET @Test = 1
SELECT CASE(@Test) WHEN 0 THEN 'NEIN' ELSE 'JA' END MeineCol
Du kannst das BIT Feld mit CASE überprüfen und einen entsprechenden String ausgeben.
Hi,
mal aus Interesse.
Ich habe für Bool Werte die Bit Felder immer vermieden, da sie sich nicht indizieren lassen und die meisten Queries gerade darauf abfragen.
Ist das überhaupt richtig oder optimiert MSSQL die BIT Felder in Abfragen anders?
Gruss
Quaser
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
keine ahnung, aber ich verwende auch nie bit sondern immer einen int 
keine ahnung, aber ich verwende auch nie bit sondern immer
einen int 
LOL, mach ich auch. Nur der Upsizing-Assistent von Access erzeugt immer BIT Typen. Da fragt man sich warum …