Während nscheaffer Antwort gültig ist, fühle ich mich verpflichtet, Ihnen zu sagen, dass Sie genau die gleiche Funktionalität erhalten können einen Cursor ohne Verwendung, und auch während einer Abfrage verwendet, die ein bisschen einfacher zu implementieren sein könnte.
verketten einfach alle möglichen Abfragen zusammen, um die Systemtabellen basiert weg und sie dann gleichzeitig ausführen, wie folgt aus:
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
;
Wenn Sie die SQL überprüfen möchten, bevor es läuft, kommentieren Sie einfach den EXEC
Befehl und ersetzen Sie es durch eine SELECT
, wie folgt:
SELECT @SQL;
--EXEC sp_ExecuteSQL @SQL
;