PDA

Vollständige Version anzeigen : SQL Query Analyzer


DannyUlm
04.02.2002, 08:43
Hallo zusammen,

ich hab da mal ne Frage:

Ich versuche über den Query Analyzer ein Update einer Datenbank durchzuführen. Nun ist es aber so, das manche Tabellen, die Upgedatet werden sollen, bereits existieren, und er mir diese nicht aktuallisiert. Er sagt, dass die Tabelle nicht angelegt/bearbeitet werden konnte, da bereits eine Tabelle mit deem selben Namen vorhanden ist.

Kann man das irgend wie umgehen, so das es dem Analyzer egal ist, ob die Tabelle bereits existiert?

Wäre echt suppi, wenn mir da jemand weiterhelfen könnte.

Cu
Danny

Hier noch mein Befehlssatz:

CREATE TABLE IPArtikelLieferantLFPreise
(
Mandant SMALLINT NOT NULL DEFAULT 0,
Lieferant VARCHAR(20) not NULL,
Artikelnummer VARCHAR(20) not NULL,
Position INTEGER not NULL DEFAULT 0,
Bezeichnung VARCHAR(80) NULL,
Einzelpreis Money NULL,
CONSTRAINT PKIPArtikelLieferantLFPreise PRIMARY KEY NONCLUSTERED (Mandant,Lieferant,Artikelnummer,Position)
)
GO

CREATE TABLE IPA_FAArbeitsgaengeLF
(
Idx Integer NOT NULL DEFAULT 0,
Mandant SMALLINT NOT NULL DEFAULT 0,
LFIdx Integer NOT NULL DEFAULT 0,
LFBelID Integer NOT NULL DEFAULT 0,
WbsBelID Integer NOT NULL DEFAULT 0,
VorID Integer NOT NULL DEFAULT 0,
LFArtikelnummer VARCHAR(20) not NULL,
LFLieferant VARCHAR(20) not NULL,
LFAktiv SMALLINT NOT NULL DEFAULT 0,
ISLF SMALLINT NOT NULL DEFAULT 0,
Status VARCHAR(20) not NULL,
MengeIst REAL NULL,
FolgeNr SMALLINT NOT NULL DEFAULT 0,
Belegnr SMALLINT NOT NULL DEFAULT 0,
Zusatztext VARCHAR(255) NULL,
MengeSoll REAL NULL,
Einzelpreis Money NULL,
Fertigmeldung SMALLINT NOT NULL DEFAULT 0,
CONSTRAINT PKIPA_FAArbeitsgaengeLF PRIMARY KEY NONCLUSTERED (Mandant,IDX,LFIDX)
)
GO


ALTER TABLE dbo.IPA_FAArbeitsgaenge
ADD Einzelpreis Money NULL
go

ALTER TABLE dbo.IPA_FAArbeitsgaenge
ADD LFIdx Integer NOT NULL DEFAULT 0
go

ALTER TABLE dbo.IPA_FAArbeitsgaenge
ADD LFArtikelnummerSi VARCHAR(20) NULL
go

ALTER TABLE dbo.IPA_FAArbeitsgaenge
ADD LFLieferantSi VARCHAR(20) NULL
go

Joachim Hofmann
04.02.2002, 10:23
Hallo DannyUlm,

Du meinst wahrscheinlich nicht updaten, sondern erstellen einer Tabelle.
Vor das CREATE TABLE muß man eine Abfrage mit Systemtabellen machen, die prüft, ob die Tabelle schon existiert wie folgt.
(Funkt in SQL Server 7)

Beispiel:


<SPAN style="background-color: #ffdead"><FONT color=#008000>/****** Objekt: Tabelle [dbo].[MeineTabelle] Skriptdatum: 19.07.2001 11:09:57 ******/</FONT></SPAN>
<FONT color=#804040>if</FONT> <FONT color=#804040>not</FONT> <FONT color=#804040>exists</FONT> (<FONT color=#804040>select</FONT> * <FONT color=#6a5acd>from</FONT> sysobjects <FONT color=#6a5acd>where</FONT> id = object_id(N<FONT color=#ff00ff>'[dbo].[MeineTabelle]'</FONT>) <FONT color=#804040>and</FONT> OBJECTPROPERTY(id, N<FONT color=#ff00ff>'IsUserTable'</FONT>) = <FONT color=#ff00ff>1</FONT>)
<FONT color=#804040>BEGIN</FONT>
<FONT color=#804040>CREATE</FONT> <FONT color=#6a5acd>TABLE</FONT> [dbo].[MeineTabelle] (
[MeineTabelle_Key] [<SPAN style="background-color: #ffdead"><FONT color=#0000ff>int</FONT></SPAN>] IDENTITY (<FONT color=#ff00ff>1</FONT>, <FONT color=#ff00ff>1</FONT>) <FONT color=#804040>NOT</FONT> <FONT color=#6a5acd>NULL</FONT> ,
[Feld_1] [<SPAN style="background-color: #ffdead"><FONT color=#0000ff>int</FONT></SPAN>] <FONT color=#6a5acd>NULL</FONT> ,
[Feld_2] [<SPAN style="background-color: #ffdead"><FONT color=#0000ff>varchar</FONT></SPAN>] (<FONT color=#ff00ff>50</FONT>) <FONT color=#6a5acd>NULL</FONT>
) <FONT color=#6a5acd>ON</FONT> [PRIMARY]
<FONT color=#804040>END</FONT>


HTH

DannyUlm
04.02.2002, 10:49
Danke für den Tip, aber das ist es eigentlich nicht, was ich will.

Ich bekomme momentan regelmässig SQL Statements, die ich einspielen muss. In diesem Statement sind sowohl änderungen in Tabellen als auch neue Tabellen.

Ich will nun einfach, das das SQL Statement nicht sagt, das die Tabellen bereits vorhanden seinen, sondern, das er diese überschreibt...

Ist das machbar???

DannyUlm
04.02.2002, 11:00
HAT SICH ERLEDIGT... DANKE... BITTE LÖSCHEN