/* Kleines Script zum Erstellen der Datenbank db_sql_interaktiv Jürgen Auer, http://www.sql-und-xml.de/sql-samples/create-sql-interaktiv.sql Führen Sie das Script aus, indem Sie bsp. an der Eingabeaufforderung osql -E -i create-sql-interaktiv.sql eingeben, falls Sie sich über eine vertraute Verbindung am MsSqlServer anmelden. Falls Sie bereits eine Datenbank namens db_sql_interaktiv verwenden, benennen Sie diesen Ausdruck im Script um. */ /* Beginn des Datenbank-Blocks */ -- Falls Sie das Löschen in einer Tabelle ausgiebig testen möchten: -- Kommentieren Sie alle Zeilen von hier bis zum Ende des Datenbank-Blocks -- aus. Dann können Sie mit einer interaktiven OSQL-Box in der Datenbank -- bleiben, auch wenn Sie in einer DosBox das Script wiederholt ausführen use master go If ((Select Count(*) From master.dbo.sysdatabases Where name = 'db_sql_interaktiv') > 0) Drop Database db_sql_interaktiv go Create Database db_sql_interaktiv go /* Ende des Datenbank-Blocks */ /* Eigentlicher Scriptbeginn */ use db_sql_interaktiv go If ((Select Count(*) From sysobjects Where name = 'Umsatz') > 0) Drop Table Umsatz If ((Select Count(*) From sysobjects Where name = 'Vertreter') > 0) Drop Table Vertreter If ((Select Count(*) From sysobjects Where name = 'Artikel') > 0) Drop Table Artikel go /* Die Tabellen Artikel und Vertreter enthalten keinen eigenständig hochzählenden Primärschlüssel. Man könnte auch diese Tabellen mit int Identity(1, 1) definieren und vor dem Einfügen Set Identity_Insert Artikel On anschließend Set Identity_Insert Artikel Off setzen. Die Tabelle Umsatz verwendet einen selbständig zählenden Primärschlüssel. */ Create Table Vertreter( V_Nr int Constraint PK_Vertreter Primary Key, V_Name varchar(30), V_Anschrift varchar(50), V_Prov Decimal(3, 2), V_Konto Money) Create Table Artikel( A_Nr int Constraint PK_Artikel Primary Key, A_Name varchar(20), A_Preis Money) go Create Table Umsatz( Umsatz_Nr int identity(1, 1) Constraint PK_Umsatz Primary Key, V_Nr int Constraint fk_Umsatz_Vertreter References Vertreter(V_Nr), A_Nr int Constraint fk_Umsatz_Artikel References Artikel(A_Nr), A_Stueck int Not Null, Datum datetime Not Null) go /* Die folgenden Anweisungen kann man auch über ein Insert Into Select ... Union Select abwickeln. */ Insert Into Vertreter Values(8413, 'Meyer, Emil', 'Wendeweg 10, 2800 Bremen', 0.07, 725.15) Insert Into Vertreter Values(5016, 'Meier, Franz', 'Kohlstr. 1, 2800 Bremen', 0.05, 200.00) Insert Into Vertreter Values(1215, 'Schulze, Fritz', 'Gemüseweg 3, 2800 Bremen', 0.06, 50.50) Insert Into Artikel Values (12, 'Oberhemd', 39.80) Insert Into Artikel Values (22, 'Mantel', 360.00) Insert Into Artikel Values (11, 'Oberhemd', 44.20) Insert Into Artikel Values (13, 'Hose', 110.50) Go Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(8413, 12, 40, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(5016, 22, 10, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(8413, 11, 70, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(1215, 11, 20, '19990625') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(5016, 22, 35, '19990625') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(8413, 13, 35, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(1215, 13, 5, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(1215, 12, 10, '19990624') Insert Into Umsatz (V_Nr, A_Nr, A_Stueck, Datum) Values(8413, 11, 20, '19990625') go