[SQL] Select als input voor Select

Pagina: 1
Acties:

  • Yannick
  • Registratie: December 2000
  • Laatst online: 17-07 17:03
Ik probeer ongeveer het volgende te doen (pseudocode):
code:
1
2
3
SELECT * FROM 
(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_NAME = 'FK_Voorbeeld')

Foutmelding:
Incorrect syntax near ')'.

Ik probeer dus een alles te selecteren van een tabel die als naam het resultaat van een query heeft.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09:31

Crazy D

I think we should take a look.

Als je alles wilt selecteren hoef je toch niet nogmaals een SELECT * te doen :?

Exact expert nodig?


Verwijderd

Ik denk niet dat je dat in een query kan doen, ligt er misschien aan welk sql-systeem je gebruikt. Een tweede query zal in ieder geval soelaas bieden...

  • Yannick
  • Registratie: December 2000
  • Laatst online: 17-07 17:03
De ingewikkelde SELECT geeft dub bv. "deTabelDieIkZoek" terug. Die string moet gebruikt worden om de eenvoudige SELECT * op te bouwen zodat deze het volgende doet:
code:
1
SELECT * FROM deTabelDieIkZoek
Zou ik zoiets misschien met variabelen of cursors kunnen doen?
Ik gebruik SQL Server 2000 als database

  • Yannick
  • Registratie: December 2000
  • Laatst online: 17-07 17:03
Hier iets dat ik geprobeerd heb met cursors en variabelen, krijg nu echter ook foutmelding:
Must declare the variable '@Table'.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @Table VARCHAR(128)

DECLARE Constraints CURSOR FOR 
        SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
        WHERE CONSTRAINT_NAME = 'FK_Voorbeeld'

OPEN Constraints
    FETCH NEXT FROM Constraints INTO @Table

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SELECT * FROM @Table
        FETCH NEXT FROM Constraints INTO @Table
    END
    
CLOSE Constraints
DEALLOCATE Constraints

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

waarom niet zo?
code:
1
2
3
4
5
6
7
8
9
DECLARE @table VARCHAR(128)

SELECT @table=TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
WHERE  CONSTRAINT_NAME = 'FK_Voorbeeld'

DECLARE @sql VARCHAR(500)
SET @sql = 'SELECT * FROM ' + @table

EXEC sp_executesql @sql
/disclaimer: niet getest

Today's subliminal thought is:


  • Yannick
  • Registratie: December 2000
  • Laatst online: 17-07 17:03
Yes dat is hem!
Bedankt.
Pagina: 1