Create Table in MS SQL Server

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 :smile:

keine ahnung, aber ich verwende auch nie bit sondern immer
einen int :smile:

LOL, mach ich auch. Nur der Upsizing-Assistent von Access erzeugt immer BIT Typen. Da fragt man sich warum …