Если вы хотите "последние 10 на таблицу"
SELECT
*
FROM
(
SELECT
Primary_key, Forign_key,
UserId, OrganisationId, NULL AS LocationId, NULL AS PostID,
CreatedDate, 'table3' AS Source,
ROW_NUMBER() OVER (ORDER BY CreatedDate DESC) AS rn
FROM table3
UNION ALL
SELECT
Primary_key, Forign_key,
NULL, NULL, LocationId, NULL,
CreatedDate, 'table2',
ROW_NUMBER() OVER (ORDER BY CreatedDate DESC) AS rn
FROM table2
UNION ALL
SELECT
Primary_key, Forign_key,
NULL, NULL, NULL, PostID,
CreatedDate, 'table1',
ROW_NUMBER() OVER (ORDER BY CreatedDate DESC) AS rn
FROM table
) T
WHERE
t.rn <= 10
Для "последние 10 на все таблицы"
SELECT TOP 10
*
FROM
(
SELECT
Primary_key, Forign_key,
UserId, OrganisationId, NULL AS LocationId, NULL AS PostID,
CreatedDate, 'table3' AS Source
FROM table3
UNION ALL
SELECT
Primary_key, Forign_key,
NULL, NULL, LocationId, NULL,
CreatedDate, 'table2'
FROM table2
UNION ALL
SELECT
Primary_key, Forign_key,
NULL, NULL, NULL, PostID,
CreatedDate, 'table1'
FROM table
) T
ORDER BY
CreatedDate DESC