Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Probleme mit Tabellenvariablen

  Alt 24. Jan 2009, 16:29
Datenbank: MS SQL-Server Express • Version: 2005 • Zugriff über: ADO
Hallo,
ich habe Probleme mit einer Tabellenvariablen.
Was möchte ich:
In der Tabelle DM_DIMENSION stehen in der Spalte dm_TABLENAME Namen von Tabellen
in der Datenbank DIMLOAD. Die Anzahl der Tabellen ist variabel. Alle Tabellen
haben aber min. die Felder Membername und Alias. Jetzt möchte den Inhalt dieser
Felder aller Tabellen in die Tabellenvaribalen schreiben und ausgeben.
Leider erhalte ich folgende Fehlermeldung:
Meldung 137, Ebene 15, Status 2, Zeile 21
Die "@MemTable"-Skalarvariable muss deklariert werden.



SQL-Code:
USE [dimload]

SET NOCOUNT ON

DECLARE @SQL NVARCHAR(4000)
DECLARE @TABNAME NVARCHAR(255)
DECLARE @MemTable TABLE
(
  MEMBERNAME NVARCHAR(255),
  ALIAS NVARCHAR(255)
)

DECLARE c CURSOR LOCAL FOR SELECT dm_TABLENAME FROM dbo.DM_DIMENSION
OPEN c
FETCH NEXT FROM c INTO @TABNAME
WHILE @@Fetch_status = 0
  BEGIN

  SET @SQL = 'INSERT INTO @Table SELECT membername as MEMBERNAME, alias_1 as ALIAS '+
            'FROM '+@TABNAME+' WHERE (alias_1<>''X'') and (sdata<>''SHAREDATA'')'
  EXEC sp_executesql @SQL,@MemTable /* hier möchte ich die Tabellenvariable als   
              Paramter für @Table übergeben */
   

  FETCH NEXT FROM c INTO @TABNAME
  END
CLOSE c
DEALLOCATE c
SET NOCOUNT OFF

SELECT membername, count(alias) AS anzahl FROM @MemTable GROUP BY alias, membername
I come from outer space to save the human race
  Mit Zitat antworten Zitat