{"id":30296,"date":"2024-02-12T06:45:00","date_gmt":"2024-02-12T05:45:00","guid":{"rendered":"https:\/\/expert-only.com\/?p=30296"},"modified":"2024-02-29T17:41:55","modified_gmt":"2024-02-29T16:41:55","slug":"como-listar-todas-as-tabelas-no-sql-server","status":"publish","type":"post","link":"https:\/\/expert-only.com\/pt-pt\/t-sql\/como-listar-todas-as-tabelas-no-sql-server\/","title":{"rendered":"Como listar todas as tabelas no SQL Server?"},"content":{"rendered":"\n<p>Para auditar uma base de dados MSSQL e suas tabelas, \u00e9 comum querer a lista de tabelas sob a forma de uma tabela ou uma folha de Excel. Esta consulta SQL permite listar todas as tabelas numa base de dados SQL Server e exibir o n\u00famero de linhas e tamanho para cada tabela. Desenvolvedores de SQL Server tamb\u00e9m procuram frequentemente por tabelas, por exemplo, para an\u00e1lise de impacto. Portanto, \u00e9 muito \u00fatil listar rapidamente todas as tabelas para uma auditoria, seja ela t\u00e9cnica ou funcional. Para come\u00e7ar, estas tr\u00eas diferentes consultas T-SQL permitem-lhe exibir a informa\u00e7\u00e3o de diferentes maneiras, e com diferentes n\u00edveis de detalhes.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A primeira \u00e9 uma lista simples de tabelas.<\/li>\n\n\n\n<li>A segunda consulta exibe informa\u00e7\u00f5es \u00fateis como a coluna object_id, create_date e modify_date.<\/li>\n\n\n\n<li>A terceira consulta exibe o esquema, o n\u00famero de linhas e o espa\u00e7o em disco utilizado por cada tabela.<\/li>\n<\/ol>\n\n\n\n<p>De fato, as tabelas de sistema e vistas de sistema do SQL Server cont\u00eam <a href=\"https:\/\/developers.google.com\/analytics\/devguides\/reporting\/metadata\/v3?hl=pt-br\" target=\"_blank\" rel=\"noreferrer noopener\">metadados \u00fateis que descrevem os diferentes objetos<\/a> na base de dados, incluindo as tabelas, claro. Assim, todas as solu\u00e7\u00f5es apresentadas neste artigo usam tabelas ou vistas de sistema, tais como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>information_schema.tables<\/li>\n\n\n\n<li>sys.tables<\/li>\n\n\n\n<li>sys.indexes<\/li>\n\n\n\n<li>sys.partitions<\/li>\n\n\n\n<li>sys.allocation_units<\/li>\n\n\n\n<li>ou sys.schemas<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">1. Exibir uma lista de todas as tabelas usando uma vista de sistema do SQL Server<\/h2>\n\n\n\n<p><strong>No SQL Server, information_schema.tables \u00e9 uma vista, n\u00e3o uma tabela.<\/strong> \u00c9 uma das vistas INFORMATION_SCHEMA padronizadas pela ISO para sistemas de gest\u00e3o de bases de dados relacionais (RDBMS). Esta vista fornece informa\u00e7\u00f5es sobre as tabelas e vistas presentes numa base de dados. Pode consult\u00e1-la para obter metadados sobre estas tabelas e vistas, como os seus nomes, tipos (tabela ou vista) e outros detalhes. Por exemplo, pode usar a vista de sistema information_schema.tables, assim:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT *\nFROM   information_schema.tables\nWHERE  table_type='BASE TABLE';\n<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"560\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2024\/02\/T-SQL-list-all-tables-in-sql-server-database.jpg\" alt=\"Consulta para obter a lista de todas as tabelas no SQL Server\" class=\"wp-image-30285\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2024\/02\/T-SQL-list-all-tables-in-sql-server-database.jpg 600w, https:\/\/expert-only.com\/wp-content\/uploads\/2024\/02\/T-SQL-list-all-tables-in-sql-server-database-300x280.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption class=\"wp-element-caption\"><em>Consulta para obter a lista de todas as tabelas no SQL Server<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">2. Consulta para obter a lista de tabelas do SQL Server usando a vista sys.tables<\/h2>\n\n\n\n<p>Tamb\u00e9m pode usar a vista de sistema sys.tables. O resultado da consulta mostra que o tipo de tabela armazenado na coluna [type_desc] \u00e9 USER_TABLE. <strong>Sys.tables em Transact-SQL \u00e9 tamb\u00e9m uma vista de sistema e n\u00e3o uma tabela.<\/strong> Faz parte do cat\u00e1logo de sistema do SQL Server e fornece informa\u00e7\u00f5es sobre todas as tabelas de usu\u00e1rio e tabelas de sistema existentes na base de dados atual. Pode ser usada para recuperar v\u00e1rios detalhes e metadados sobre tabelas, como o seu nome, data de cria\u00e7\u00e3o, data de modifica\u00e7\u00e3o e assim por diante. Embora possa ser consultada como uma tabela, n\u00e3o deve ser tratada como uma tabela de usu\u00e1rio edit\u00e1vel. Em vez disso, \u00e9 uma vista estruturada que apresenta certos metadados de sistema sobre as tabelas.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT *\nFROM   sys.tables;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Exibir a lista de nomes de tabelas e tamanhos em T-SQL<\/h2>\n\n\n\n<p>A terceira \u00e9 usar m\u00faltiplas tabelas de sistema do SQL Server como sys.tables, sys.indexes, sys.partitions, sys.allocation_units e sys.schemas. Estas tabelas s\u00e3o \u00fateis para exibir a lista de tabelas. Tamb\u00e9m s\u00e3o usadas para exibir o n\u00famero de linhas em cada tabela e o espa\u00e7o em disco utilizado. Por exemplo, esta consulta exibe todas as tabelas com o seu n\u00famero de linhas ordenadas em ordem decrescente. Esta consulta \u00e9 \u00fatil para encontrar o tamanho das maiores tabelas numa base de dados SQL Server.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"mssql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SELECT\nsch.name AS SCHEMANAME,\ntab.name AS TABLENAME,\npar.rows AS ROWCOUNTS,\nSUM(alc.total_pages) * 8 AS TOTAL_SPACE,\nSUM(alc.used_pages) * 8 AS USED_SPACE,\n(SUM(alc.total_pages) - SUM(alc.used_pages)) * 8 AS UNUSED_SPACE\nFROM sys.tables tabSELECT\n\tsch.name AS SCHEMANAME,\n\ttab.name AS TABLENAME,\n\tpar.rows AS ROWCOUNTS,\n\tSUM(alc.total_pages) * 8 AS TOTAL_SPACE,\n\tSUM(alc.used_pages) * 8 AS USED_SPACE,\n\t(SUM(alc.total_pages) - SUM(alc.used_pages)) * 8 AS UNUSED_SPACE\nFROM sys.tables tab\n\tINNER JOIN sys.indexes ind\n\t\tON tab.object_id = ind.object_id\n\tINNER JOIN sys.partitions par\n\t\tON  ind.object_id = par.object_id\n\t\tAND ind.index_id = par.index_id\n\tINNER JOIN sys.allocation_units alc\n\t\tON par.partition_id = alc.container_id\n\tLEFT OUTER JOIN sys.schemas sch\n\t\tON tab.schema_id = sch.schema_id\nGROUP BY \ttab.name, \n\t\tsch.name, \n\t\tpar.rows\nORDER BY par.rows DESC;\n<\/pre>\n\n\n\n<p>Esta lista de pontos explica a consulta acima e como \u00e9 constru\u00edda.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A palavra-chave &#8220;ORDER BY par.rows DESC;&#8221; \u00e9 usada para ordenar a lista de tabelas do SQL Server pelo seu n\u00famero de linhas, em ordem decrescente.<\/li>\n\n\n\n<li>Para ordenar por esquema e depois por nome de tabela, use &#8220;ORDER BY 1,2&#8221; ou &#8220;ORDER BY sch.name, tab.name; &#8221; em vez disso.<\/li>\n\n\n\n<li>O tamanho das tabelas \u00e9 indicado em KiloBytes ou KB.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sobre-a-listagem-de-objetos-do-sql-server-e-tabelas-de-sistema\">Sobre a listagem de objetos do SQL Server e tabelas de sistema<\/h3>\n\n\n\n<p>Este tutorial t\u00e9cnico do MS SQL Server explica como criar e usar uma consulta para listar todas as tabelas numa base de dados dada. Se ainda \u00e9 novo no SQL Server e quer criar uma tabela, aqui est\u00e1 <a href=\"https:\/\/expert-only.com\/en\/mysql\/create-table-mysql\/a\">como criar uma tabela SQL Server<\/a> e inserir algumas linhas de dados. \u00c9 poss\u00edvel exibir outra <a href=\"https:\/\/expert-only.com\/en\/t-sql\/sql-server-table-size-disk-space\/\">lista de tabelas MS SQL com mais foco no espa\u00e7o em disco dispon\u00edvel<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriais-sql-e-ti wp-block-embed-tutoriais-sql-e-ti\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/expert-only.com\/en\/t-sql\/sql-server-table-size-disk-space\/\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Para auditar uma base de dados MSSQL e suas tabelas, \u00e9 comum querer a lista de tabelas sob a forma de uma tabela ou uma folha de Excel. Esta consulta SQL permite listar todas as tabelas numa base de <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/pt-pt\/t-sql\/como-listar-todas-as-tabelas-no-sql-server\/\" title=\"Como listar todas as tabelas no SQL Server?\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":5790,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[456],"tags":[],"class_list":{"0":"post-30296","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=30296"}],"version-history":[{"count":1,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30296\/revisions"}],"predecessor-version":[{"id":30310,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/posts\/30296\/revisions\/30310"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media\/5790"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=30296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=30296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=30296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}