Sto lavorando su un'applicazione che può trattare con più server di database come "MySQL" e "MS SQL Server".
Voglio ottenere i nomi delle tabelle di un particolare database usando una query generale che dovrebbe essere adatta a tutti i tipi di database. Ho provato quanto segue:
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Ma sta dando i nomi delle tabelle di tutti i database di un particolare server, ma io voglio ottenere solo i nomi delle tabelle del database selezionato. Come posso limitare questa query per ottenere le tabelle di un particolare database?
Probabilmente a causa del modo in cui diversi dbm sql trattano gli schemi.
Provate il seguente
Per SQL Server:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName'
Per MySQL:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
Per Oracle penso che l'equivalente sarebbe usare DBA_TABLES
.
La seguente query selezionerà tutte le Tabelle
nel database chiamato DBName
:
USE DBName
GO
SELECT *
FROM sys.Tables
GO