SQL 服务器:列出 table 个名称及其 ID
SQL Server : listing table names and its ids
我想列出所有指定的 tables,其 ID 包含在 SQL 服务器中。
例如:
客户端 table
| id | foo |
|:---|:----:|
| 1 | This |
| 2 | Col |
用户 table
| id | bar |
|:---|:----:|
| 1 | That |
| 2 | Col |
| 3 | Col |
| 4 | Col |
我想生成这样的结果:
| TableName | ID |
|:---------:|:----:|
| Client | 1 |
| Client | 2 |
| User | 1 |
| User | 2 |
| User | 3 |
| User | 4 |
我所做的是列出所有需要的 table 名称,但我不知道如何列出其 ID
SELECT t.name AS TableName
FROM sys.tables as t
WHERE t.name = 'Client'
OR t.name = 'User'
输出:
| - | TableName |
|---| --------- |
| 1 | Client |
| 2 | User |
有什么想法吗?
你需要 UNION ALL
:
SELECT 'Client' AS TableName, ID
FROM Client
UNION ALL
SELECT 'User', ID
FROM User;
你需要UNION
SELECT T.Name,
C.ID
FROM Sys.Tables T CROSS APPLY
Clients C
WHERE T.Name = 'Clients'
UNION
SELECT T.Name,
U.ID
FROM Sys.Tables T CROSS APPLY
Users U
WHERE T.Name = 'Users'
我想列出所有指定的 tables,其 ID 包含在 SQL 服务器中。
例如:
客户端 table
| id | foo |
|:---|:----:|
| 1 | This |
| 2 | Col |
用户 table
| id | bar |
|:---|:----:|
| 1 | That |
| 2 | Col |
| 3 | Col |
| 4 | Col |
我想生成这样的结果:
| TableName | ID |
|:---------:|:----:|
| Client | 1 |
| Client | 2 |
| User | 1 |
| User | 2 |
| User | 3 |
| User | 4 |
我所做的是列出所有需要的 table 名称,但我不知道如何列出其 ID
SELECT t.name AS TableName
FROM sys.tables as t
WHERE t.name = 'Client'
OR t.name = 'User'
输出:
| - | TableName |
|---| --------- |
| 1 | Client |
| 2 | User |
有什么想法吗?
你需要 UNION ALL
:
SELECT 'Client' AS TableName, ID
FROM Client
UNION ALL
SELECT 'User', ID
FROM User;
你需要UNION
SELECT T.Name,
C.ID
FROM Sys.Tables T CROSS APPLY
Clients C
WHERE T.Name = 'Clients'
UNION
SELECT T.Name,
U.ID
FROM Sys.Tables T CROSS APPLY
Users U
WHERE T.Name = 'Users'