Delen via


sp_tables (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft een lijst terug van objecten die in de huidige omgeving kunnen worden geraadpleegd. Dit betekent elke tabel of weergave, behalve synoniemobjecten.

Opmerking

Om de naam van het basisobject van een synoniem te bepalen, raadpleeg de katalogweergave van sys.synonyms .

Transact-SQL syntaxis-conventies

Syntaxis

Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW):

sp_tables
    [ [ @table_name = ] N'table_name' ]
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @table_type = ] 'table_type' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

De tabel die wordt gebruikt om catalogusinformatie terug te geven. @table_name is nvarchar(384), met als standaard .NULL Wildcard-patroonmatching wordt ondersteund.

[ @table_owner = ] N'table_owner'

De tabeleigenaar van de tabel die wordt gebruikt om catalogusinformatie terug te geven. @table_owner is nvarchar(384), met een standaard van NULL. Wildcard-patroonmatching wordt ondersteund. Als de eigenaar niet is gespecificeerd, gelden de standaard tabelzichtbaarheidsregels van het onderliggende DBMS.

In SQL Server, als de huidige gebruiker een tabel met de opgegeven naam bezit, worden de kolommen van die tabel teruggegeven. Als de eigenaar niet is opgegeven en de huidige gebruiker geen tabel met de opgegeven naam bezit, zoekt deze procedure naar een tabel met de opgegeven naam die eigendom is van de database-eigenaar. Als er een bestaat, worden de kolommen van die tabel teruggegeven.

[ @table_qualifier = ] N'table_qualifier'

De naam van de kwalificatiespeler op de tafel. @table_qualifier is sysname, met als standaard .NULL Verschillende DBMS-producten ondersteunen drieledige naamgeving voor tabellen (<qualifier>.<owner>.<name>). In SQL Server vertegenwoordigt deze kolom de databasenaam. In sommige producten vertegenwoordigt het de servernaam van de databaseomgeving van de tabel.

[ @table_type = ] 'table_type'

Een lijst van waarden, gescheiden door komma's, die informatie geeft over alle tabellen van de gespecificeerde tabeltypes. Dit zijn onder andere TABLE, SYSTEMTABLEen VIEW. @table_type is varchar(100), met een standaard van NULL.

Enkele aanhalingstekens moeten elk tabeltype omsluiten, en dubbele aanhalingstekens moeten de volledige parameter omsluiten. Tabeltypen moeten met hoofdletters zijn. Als SET QUOTED_IDENTIFIER dat is ON, moet elk enkel aanhalingsteken worden verdubbeld en moet de hele parameter worden omsloten door enkele aanhalingstekens.

[ @fUsePattern = ] fUsePattern

Bepaalt of de onderscore (_), procent (%) en haak ([ of ]) tekens als jokers worden geïnterpreteerd. Geldige waarden zijn 0 (patroonafwijzing is niet) en 1 (patroonafstemming staat aan). @fUsePattern is bit, met als standaard .1

Codewaarden retourneren

Geen.

Resultaatset

Kolomnaam Gegevenstype Description
TABLE_QUALIFIER sysname Naam van de kwalificatie in de tabel. In SQL Server vertegenwoordigt deze kolom de databasenaam. Dit veld kan zijn NULL.
TABLE_OWNER sysname Naam van de tafeleigenaar. In SQL Server vertegenwoordigt deze kolom de naam van de databasegebruiker die de tabel heeft aangemaakt. Dit veld geeft altijd een waarde terug.
TABLE_NAME sysname Tabelnaam. Dit veld geeft altijd een waarde terug.
TABLE_TYPE Varchar(32) Tabel, systeemtabel of weergave.
REMARKS Varchar(254) SQL Server geeft geen waarde terug voor deze kolom.

Opmerkingen

Voor maximale interoperabiliteit moet de gateway-client alleen SQL-92-standaard SQL-patroonafstemming aannemen (de % en _ wildcard-tekens).

Privilege-informatie over de lees- of schrijfrechten van de huidige gebruiker voor een specifieke tabel wordt niet altijd gecontroleerd. Daarom is toegang niet gegarandeerd. Deze resultaatset bevat niet alleen tabellen en weergaven, maar ook synoniemen en aliassen voor gateways naar DBMS-producten die deze typen ondersteunen. Als het serverattribuut ACCESSIBLE_TABLES Y is in de resultaatset voor sp_server_info, worden alleen tabellen teruggegeven die door de huidige gebruiker toegankelijk zijn.

sp_tables is gelijk aan SQLTables in ODBC. De teruggegeven resultaten zijn geordend door TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER, en TABLE_NAME.

Permissions

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden

Eén. Geef een lijst terug van objecten die in de huidige omgeving kunnen worden bevraagd

Het volgende voorbeeld geeft een lijst van objecten die in de huidige omgeving queries kunnen zijn.

EXECUTE sp_tables;

B. Geef informatie terug over de tabellen in een gespecificeerd schema

Het volgende voorbeeld geeft informatie terug over de tabellen die tot het Person schema in de AdventureWorks2025-database behoren.

USE AdventureWorks2022;
GO

EXECUTE sp_tables
    @table_name = '%',
    @table_owner = 'Person',
    @table_qualifier = 'AdventureWorks2022';

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Geef een lijst terug van objecten die in de huidige omgeving kunnen worden bevraagd

Het volgende voorbeeld geeft een lijst van objecten die in de huidige omgeving queries kunnen zijn.

EXECUTE sp_tables;

D. Geef informatie terug over de tabellen in een gespecificeerd schema

Het volgende voorbeeld geeft informatie over de dimensietabellen in de AdventureWorksPDW2012 database.

-- Uses AdventureWorks
EXECUTE sp_tables
    @table_name = 'Dim%',
    @table_owner = 'dbo',
    @table_qualifier = 'AdventureWorksPDW2012';