Jaki jest najlepszy sposób na uzyskanie nazw wszystkich tabel w określonej bazie danych na serwerze SQL Server?
sql-server
tsql
database-table
Promień
źródło
źródło
SHOW TABLES
(jak używane w MySQL) działa?Odpowiedzi:
SQL Server 2000, 2005, 2008, 2012, 2014, 2016, 2017 lub 2019:
Aby wyświetlić tylko tabele z określonej bazy danych
Lub,
PS: dla SQL Server 2000:
źródło
WHERE TABLE_TYPE='BASE TABLE'
obejmie tylko tabele podstawowe (a przez rozszerzenie możesz zawsze korzystaćWHERE TABLE_TYPE != 'VIEW'
).AND name <> 'sysdiagrams'
.Oto lista innych typów obiektów, których możesz szukać:
źródło
SELECT name FROM sysobjects WHERE xtype = 'U'
zrobiłby to samo.PK,FK,D,C,V,UQ
etc, aby porównać źródłową i docelową bazę danych, ale potem znalazłem tę funkcję w VS, ale czy niesql query
ma porównania pełnej i źródłowej bazy danych?'U'
używa się go do identyfikacji tabeli użytkowników ... w przeciwieństwie do być może'UT'
lub, najbardziej intuicyjnie,'T'
... Ach, to działa!LUB
źródło
LUB
źródło
SQL Server 2012
źródło
źródło
(SQL Server 2000 standard; nadal obsługiwany w SQL Server 2005.)
źródło
select * from sysobjects where xtype='U'
źródło
źródło
SELECT name FROM sysobjects WHERE xtype='U' AND name <> 'sysdiagrams';
ponieważ tabela sysdiagrams, choć utworzona przez Microsoft SQL Server Management Studio, technicznie nie jest tabelą systemową, ale taką, którą zwykle lubimy wykluczać.Minusem
INFORMATION_SCHEMA.TABLES
jest to, że zawiera również tabele systemowe, takie jakdtproperties
iMSpeer_...
tabele, bez możliwości odróżnienia ich od własnych tabel.Polecam użycie
sys.objects
(nowej wersji przestarzałego widoku sysobjects ), który obsługuje wykluczanie tabel systemowych:źródło
W SSMS, aby uzyskać wszystkie w pełni kwalifikowane nazwy tabel w określonej bazie danych (np. „MyDatabase”):
Wyniki:
źródło
Proszę użyć tego. Otrzymasz nazwy tabel wraz z nazwami schematów:
źródło
źródło
Dzięki Ray Vega, którego odpowiedź podaje wszystkie tabele użytkowników w bazie danych ...
sp_helptext pokazuje bazowe zapytanie, które podsumowuje do ...
źródło
Możesz użyć sys.objects, aby uzyskać wszystkie obiekty bazy danych.
LUB
źródło
Ten link może dostarczyć znacznie więcej informacji na ten temat
źródło
Używanie
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
pokazuje również wszystkie tabele i powiązane kolumny.źródło