Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Selezionare tutte le tabelle di un database

    Esiste una query con la quale è possibile selezionare tutte le tabelle presenti in un database e popolare così un dataset?
    Lunga vita e prosperità!!
    Usa Mozilla! http://www.mozilla.com

  2. #2
    codice:
    DECLARE RS CURSOR LOCAL FAST_FORWARD READ ONLY FOR
    	SELECT 	[name]
    	FROM 	sysobjects
    	WHERE	xtype = N'U'
    	
    OPEN RS
    DECLARE @object nvarchar(128)
    DECLARE @query 	nvarchar(4000)
    
    SET		@query = N''
    FETCH NEXT FROM RS INTO @object
    WHILE(@@FETCH_STATUS = 0)
    BEGIN
    	SET @Query = @Query + N'SELECT * FROM ' + @object
    	FETCH NEXT FROM RS INTO @object
    END
    
    EXEC sp_executesql @query
    CLOSE RS
    DEALLOCATE RS
    Nota: è una query molto rudimentale, ho pensato di scrivertela anche se non vedo il motivo per cui sia necessario caricare tutto il db in un dataset, potresti scrivere le query a mano. CI sono molti metodi per questo tipo di operazioni "Dinamiche".
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3
    Dimenticavo, questo discorso si può applicare a database SQL Server
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  4. #4

  5. #5
    sysobjects è una tabella di sistema che si trova su sql server e che contiene la struttura di ogni tabella memorizzata per un determinato db, oltre esistono anche la syscolumns etc. etc., sull'msdn è documentata in dettaglio ognuna delle tabelle di sistema con cui puoi progettare cose davvero straordinarie
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    mi e' venuto un dubbio: contenendo la struttura di tutte le tabelle, contiene anche quelle delle tabelle di sistema, compresa la sua ?

    Dalla colonna "name" pare di si... :master:

  7. #7
    Ahahaha, no no, ricorda che un server sql contiene al suo interno 4 db di default, Master, Model, msdb, tempdb.
    Ti sei mai chiesto a cosa servano, anche qui l'MSDN può esserti molto d'aiuto.
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    si, certo che me lo sono chiesto ho spulciato un po' le 4 strutture...

    Ma mi chiedo soprattutto sempre di piu' se non sia il caso di fare un sub forum per i DBMS in genere e per T-SQL

  9. #9
    Be si, sono d'accordo con te, cmq scusa, prima ho dimenticato di specificare una cosa importantissima, tutte le tabelle sys sono viste che puntano alle reali tabelle di sistema (per ovvi motivi di sicurezza).
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  10. #10
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ho provato a fare una:

    codice:
    print @query
    dopo la fetch, e viene fuori:

    SELECT * FROM TB_UTENTISELECT * FROM TB_NEWSLETTERSELECT * FROM TB_ANNUNCI_UTENTISELECT * FROM TB_EVENTI_AZIENDESELECT * FROM TB_ANNUNCI_UTENTI_VISITESELECT * FROM TB_AZIENDESELECT * FROM TB_CANDIDATURESELECT * FROM dtpropertiesSELECT * FROM TB_ANNUNCI_AZIENDE
    mi sa che ci vuole uno spazio :master:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.