SQL Server: список имен таблиц и их идентификаторов - PullRequest
0 голосов
/ 08 января 2019

Я хочу перечислить все указанные таблицы с их идентификаторами, содержащимися в SQL Server.

Например:

Клиент Стол

| id | foo  |
|:---|:----:|
|  1 | This | 
|  2 | Col  |

Пользователь Таблица

| id | bar  |
|:---|:----:|
| 1  | That | 
| 2  | Col  |
| 3  | Col  |
| 4  | Col  |

И я хочу получить такой результат:

| TableName |  ID  |
|:---------:|:----:|
|  Client   |   1  | 
|  Client   |   2  |
|  User     |   1  |
|  User     |   2  |
|  User     |   3  |
|  User     |   4  |

Что я сделал, так это перечислил все желаемые имена таблиц, но я не знаю, как перечислить их идентификаторы

SELECT t.name AS TableName
FROM sys.tables as t
WHERE t.name = 'Client'
   OR t.name = 'User'

ВЫВОД:

| - | TableName |
|---| --------- |
| 1 |  Client   |
| 2 |   User    |

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вам нужно 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'
0 голосов
/ 08 января 2019

Вам нужно UNION ALL:

SELECT 'Client' AS TableName, ID   
FROM Client 
UNION ALL
SELECT 'User', ID
FROM User; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...