Nickname
Passwort | vergessen?

467 anonyme User

5 angemeldete Mitglieder


KowaKowalski
Pjordorf
76270 Mitglieder freuen sich auf Dich!
Top-Aktivitäten
Sehen Sie hier, wer zu den aktivsten Mitgliedern der aktuellen Woche zählt:
In den Bereich Datenbanken wechseln ..

MS-SQL SERVER 2008 in einer gespeicherten Prozedur Variable verwenden

Mitglied: PCFJKG
Geschrieben von PCFJKG (Level 1 - Frischling)
Erstellt am 05.09.2010, um 18:44:12 Uhr, Permanent-ID: 150373
Dieser Beitrag wurde bisher 1306 mal aufgerufen.
Melden Sie sich mit Ihrem Nicknamen an, um diesen Beitrag zu bewerten!
Neutral0 NeutralDruckenBeobachten
Im INFORMATION_SCHEMA.TABLES verschiedener Datenbanken soll die Existenz von Tabellen ermittelt werden.
IF EXISTS (SELECT TABLE_NAME FROM Datenbank.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME =NameDerTabelle) ist eine Aufruf, welcher bei TRUE die Existenz von NameDer Tabelle anzeigt.

Gibt es eine Syntax (oder einen Trick), um in einer GP z.B. mit

DECLARE @CmdStr nvarchar(500)
SET @CmdStr='IF EXISTS (SELECT TABLE_NAME FROM ['+@DB_Name+'].INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME ='+@TVP_Name+')'
EXEC (@CmdStr)

o.ä. die Booleanrückgabe auszuwerten ? Kann EXEX vielleicht so etwas ?

Im voraus Danke für jede Antwort.

PCFJKG
Kommentar schreibenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
Diskussionsverlauf (2 Kommentare)
thread
Bernd-
Kommentar Bernd- schreibt am 10.09.2010, 22:36:26 Uhr
Hi,

du willst also den Wert, ob's die Tabelle gibt oder nicht, als Bool haben?
...Das würde ich so machen (Beispiel):
01.
DECLARE @Return BIT 
02.
 
03.
SELECT @Return = CASE WHEN COUNT(*) >= 1 THEN 1 ELSE 0 END 
04.
FROM INFORMATION_SCHEMA.TABLES 
05.
WHERE TABLE_NAME = 'DeineTabelle'
Gruß
Bernd
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
thread
PCFJKG
Kommentar PCFJKG schreibt am 12.09.2010, 12:54:41 Uhr
Hallo Bernd,

zunächst Dank für Deine Antwort. Mein Problem ist eher, dass ['+@DB_Name+'] variabel ist und deshalb nicht direkt in der GP mit SQL Kommandos verwendet werden kann. Ich muß deshalb den jeweiligen Datenbankname einer Stringvariablen übergeben (@CmdStr). Dann kann EXEC(@CmdStr) die Stringvariable ausführen. Aber: Wie bekomme ich das Ergebnis von EXEC(@CmdStr) in der GP zur Verfügung gestellt, eal ob als Boolean oder sonstwie ?

Vielleicht hast Du da noch eine Idee (falls es überhaupt geht) ...

Nochmal danke,

viele Grüße


PCFJKG
AntwortenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.