sql-server - Microsoft SQL 从 X 表中选择
问题描述
我需要从所有表中选择一行但不定义表名和表数量?就像是SELECT * FROM * WHERE id = 'test'
这可能吗?
解决方案
您需要使用系统表构建动态查询并执行它
DECLARE @sql nvarchar(max) = (
SELECT STRING_AGG(CAST(
'SELECT *
FROM ' + QUOTENAME(SCHEMA_NAME(t.schema_id)) + '.' + QUOTENAME(t.name) + '
WHERE id = ''test'';'
AS nvarchar(max)), '
' )
FROM sys.tables t
WHERE t.object_id IN (
SELECT c.object_id
FROM sys.columns c
WHERE c.name = 'id'
)
);
EXEC sp_executesql @sql;
推荐阅读
- snowflake-cloud-data-platform - 是否可以创建数据交换并与读者帐户共享?
- javascript - 通过循环键数组创建两个或多个 S3 预签名 URL?
- python - 在 ROS 模拟中使用 OpenCV 尝试 KLT 时的问题
- r - 用于分析重复、转移和丢失 (DTL) 对账的 R 包?
- mongodb - 我需要 mongodb 文档中的有限嵌套数组
- python - Apache Cassandra Python 插入数据
- ios - 在 iOS 14 上使用通用链接
- reporting-services - 如何创建将数据库名称显示为下拉过滤器的 ssrs 报告,用户可以动态选择数据库并运行报告
- reactjs - 使用 nextJs API 链接创建支付意图后,在 ConfirmCardPayment 上出现条带支付意图错误
- java - 如何在同一个 eclipse src 文件夹中复制和粘贴 eclipse 包