sql >> Database >  >> RDS >> Sqlserver

Tabellen en schema's opnemen bij het weergeven van de identiteitskolommen in een SQL Server-database

Als je ooit de sys.identity_columns . hebt opgevraagd bekijken in SQL Server, weet u dat het een lijst met identiteitskolommen retourneert. Het retourneert ook de object_id van de tabel, maar niet de naam van de tabel of het schema.

U kunt de codevoorbeelden in dit artikel gebruiken om de identiteitskolommen te retourneren, samen met hun respectievelijke tabellen en schema's.

Voorbeeld 1 – Alle resultaten retourneren

Dit voorbeeld gebruikt een join met sys.objects tabel- en schema-informatie retourneren

USE WideWorldImportersDW;
SELECT 
  SCHEMA_NAME(o.schema_id) AS [schema],
  OBJECT_NAME(ic.object_id) AS [object],
  o.type_desc,
  ic.name,
  ic.seed_value,
  ic.increment_value,
  ic.last_value
FROM sys.identity_columns ic 
INNER JOIN sys.objects o 
ON o.object_id = ic.object_id
ORDER BY SCHEMA_NAME(o.schema_id) ASC;

Resultaat:

+-------------+---------------------------+----------------+------------------------------+--------------+-------------------+--------------+
| schema      | object                    | type_desc      | name                         | seed_value   | increment_value   | last_value   |
|-------------+---------------------------+----------------+------------------------------+--------------+-------------------+--------------|
| Fact        | Movement                  | USER_TABLE     | Movement Key                 | 1            | 1                 | 236667       |
| Fact        | Order                     | USER_TABLE     | Order Key                    | 1            | 1                 | 231412       |
| Fact        | Purchase                  | USER_TABLE     | Purchase Key                 | 1            | 1                 | 8367         |
| Fact        | Sale                      | USER_TABLE     | Sale Key                     | 1            | 1                 | 228265       |
| Fact        | Stock Holding             | USER_TABLE     | Stock Holding Key            | 1            | 1                 | 227          |
| Fact        | Transaction               | USER_TABLE     | Transaction Key              | 1            | 1                 | 99585        |
| Integration | Customer_Staging          | USER_TABLE     | Customer Staging Key         | 1            | 1                 | NULL         |
| Integration | Employee_Staging          | USER_TABLE     | Employee Staging Key         | 1            | 1                 | NULL         |
| Integration | Movement_Staging          | USER_TABLE     | Movement Staging Key         | 1            | 1                 | NULL         |
| Integration | Order_Staging             | USER_TABLE     | Order Staging Key            | 1            | 1                 | NULL         |
| Integration | PaymentMethod_Staging     | USER_TABLE     | Payment Method Staging Key   | 1            | 1                 | NULL         |
| Integration | Purchase_Staging          | USER_TABLE     | Purchase Staging Key         | 1            | 1                 | NULL         |
| Integration | Sale_Staging              | USER_TABLE     | Sale Staging Key             | 1            | 1                 | NULL         |
| Integration | StockHolding_Staging      | USER_TABLE     | Stock Holding Staging Key    | 1            | 1                 | NULL         |
| Integration | StockItem_Staging         | USER_TABLE     | Stock Item Staging Key       | 1            | 1                 | NULL         |
| Integration | Supplier_Staging          | USER_TABLE     | Supplier Staging Key         | 1            | 1                 | NULL         |
| Integration | Transaction_Staging       | USER_TABLE     | Transaction Staging Key      | 1            | 1                 | NULL         |
| Integration | TransactionType_Staging   | USER_TABLE     | Transaction Type Staging Key | 1            | 1                 | NULL         |
| Integration | City_Staging              | USER_TABLE     | City Staging Key             | 1            | 1                 | NULL         |
| sys         | queue_messages_2041058307 | INTERNAL_TABLE | queuing_order                | 0            | 1                 | NULL         |
| sys         | sqlagent_job_history      | INTERNAL_TABLE | instance_id                  | 1            | 1                 | NULL         |
| sys         | sqlagent_jobsteps_logs    | INTERNAL_TABLE | log_id                       | 1            | 1                 | NULL         |
| sys         | queue_messages_1977058079 | INTERNAL_TABLE | queuing_order                | 0            | 1                 | NULL         |
| sys         | queue_messages_2009058193 | INTERNAL_TABLE | queuing_order                | 0            | 1                 | NULL         |
+-------------+---------------------------+----------------+------------------------------+--------------+-------------------+--------------+

Voorbeeld 2 – Tabellen met alleen gebruikers terug

Dit voorbeeld gebruikt een inner join met sys.tables om alleen identiteitskolommen uit gebruikerstabellen te retourneren.

USE WideWorldImportersDW;
SELECT 
  SCHEMA_NAME(t.schema_id) AS [schema],
  OBJECT_NAME(ic.object_id) AS [table],
  ic.name,
  ic.seed_value,
  ic.increment_value,
  ic.last_value
FROM sys.identity_columns ic 
INNER JOIN sys.tables t 
ON t.object_id = ic.object_id
ORDER BY SCHEMA_NAME(t.schema_id) ASC;

Resultaat:

+-------------+-------------------------+------------------------------+--------------+-------------------+--------------+
| schema      | table                   | name                         | seed_value   | increment_value   | last_value   |
|-------------+-------------------------+------------------------------+--------------+-------------------+--------------|
| Fact        | Movement                | Movement Key                 | 1            | 1                 | 236667       |
| Fact        | Order                   | Order Key                    | 1            | 1                 | 231412       |
| Fact        | Purchase                | Purchase Key                 | 1            | 1                 | 8367         |
| Fact        | Sale                    | Sale Key                     | 1            | 1                 | 228265       |
| Fact        | Stock Holding           | Stock Holding Key            | 1            | 1                 | 227          |
| Fact        | Transaction             | Transaction Key              | 1            | 1                 | 99585        |
| Integration | City_Staging            | City Staging Key             | 1            | 1                 | NULL         |
| Integration | Customer_Staging        | Customer Staging Key         | 1            | 1                 | NULL         |
| Integration | Employee_Staging        | Employee Staging Key         | 1            | 1                 | NULL         |
| Integration | Movement_Staging        | Movement Staging Key         | 1            | 1                 | NULL         |
| Integration | Order_Staging           | Order Staging Key            | 1            | 1                 | NULL         |
| Integration | PaymentMethod_Staging   | Payment Method Staging Key   | 1            | 1                 | NULL         |
| Integration | Purchase_Staging        | Purchase Staging Key         | 1            | 1                 | NULL         |
| Integration | Sale_Staging            | Sale Staging Key             | 1            | 1                 | NULL         |
| Integration | StockHolding_Staging    | Stock Holding Staging Key    | 1            | 1                 | NULL         |
| Integration | StockItem_Staging       | Stock Item Staging Key       | 1            | 1                 | NULL         |
| Integration | Supplier_Staging        | Supplier Staging Key         | 1            | 1                 | NULL         |
| Integration | Transaction_Staging     | Transaction Staging Key      | 1            | 1                 | NULL         |
| Integration | TransactionType_Staging | Transaction Type Staging Key | 1            | 1                 | NULL         |
+-------------+-------------------------+------------------------------+--------------+-------------------+--------------+

  1. Een overzicht van JSON-mogelijkheden binnen PostgreSQL

  2. Ubuntu 18.04 voor SQL Server 2019 op virtuele machine installeren met VMware Workstation

  3. Windows PSQL-opdrachtregel:is er een manier om wachtwoordloos inloggen toe te staan?

  4. Is het in Oracle mogelijk om een ​​record in te voegen of te UPDATEN via een weergave?