SELECT TOP 10
*
FROM
(SELECT
COLUMN_NAME, TABLE_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE '%MAIL%')
我正在尝试从搜索中的每个表中获取前10行。有任何想法吗? SQL Server 2008 R2
答案 0 :(得分:0)
我会使用游标创建动态SQL,然后执行该SQL。这对你有用吗?
.done(function (data) {
if (data) {
$("#loding").hide();
$("#Success").slideDown("slow");
// this should do the trick
$("#some_id").html(data);
$("#codesubmit")[0].reset();
}
...
答案 1 :(得分:0)
虽然nscheaffer的答案是有效的,但我觉得有义务告诉您,您可以在不使用游标的情况下获得完全相同的功能,并且在使用可能更容易实现的查询时也是如此。
根据系统表将所有可能的查询连接在一起,然后同时执行它们,如下所示:
DECLARE @SQL NVARCHAR(MAX)
;
SELECT @SQL =
(
SELECT 'SELECT TOP 10 * FROM ' + OBJECT_NAME(C.Object_ID) + ';' + CHAR(10)
FROM sys.Columns C
INNER JOIN sys.Tables T
ON C.Object_ID = T.Object_ID
AND T.is_ms_shipped = 0
WHERE C.Name LIKE '%Mail%'
GROUP BY C.Object_ID
ORDER BY C.Object_ID
FOR XML PATH('')
)
;
EXEC sp_ExecuteSQL @SQL
;
如果要在运行之前检查SQL,只需注释掉EXEC
命令并将其替换为SELECT
,如下所示:
SELECT @SQL;
--EXEC sp_ExecuteSQL @SQL
;