add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE Table_A ( Foo int NOT NULL );
CREATE TABLE Table_B ( Foo int NOT NULL );
CREATE TABLE Table_C ( Foo int NOT NULL );


EXEC sp_addextendedproperty @name = N'Name', @value = N'name-value',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'Table_A';

EXEC sp_addextendedproperty @name = N'Date', @value = N'date-value',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'Table_A';

EXEC sp_addextendedproperty @name = N'Link', @value = N'link-value',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'Table_A';

EXEC sp_addextendedproperty @name = N'Name', @value = N'name-value',
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'Table_B';

EXEC sp_addextendedproperty @name = N'Date', @value = N'', /* empty value :o */
@level0type = N'SCHEMA', @level0name = N'dbo',
@level1type = N'TABLE', @level1name = N'Table_B';
WITH eps AS (

SELECT
ep.major_id AS "object_id",
ep."name" AS epName,
CONVERT( nvarchar(4000), ep."value" ) AS epValue
FROM
sys.extended_properties AS ep
WHERE
ep.class = 1
AND
ep.minor_id = 0
AND
ep."name" IN ( N'Name', N'Date', N'Link' )
),
j AS (
SELECT
OBJECT_SCHEMA_NAME( t."object_id" ) AS TableSchema,
t."name" AS TableName,
e.epName,
e.epValue
FROM
sys.tables AS t
LEFT OUTER JOIN eps AS e ON t."object_id" = e."object_id"
)
SELECT
TableSchema,
TableName,
CONVERT( bit, COUNT( CASE WHEN j.epName = N'Name' THEN 1 END ) ) AS HasName,
CONVERT( bit, COUNT( CASE WHEN j.epName = N'Date' THEN 1 END ) ) AS HasDate,
CONVERT( bit, COUNT( CASE WHEN j.epName = N'Link' THEN 1 END ) ) AS HasLink,

CONVERT( bit, COUNT( CASE WHEN j.epName = N'Name' AND LEN( j.epValue ) > 0 THEN 1 END ) ) AS HasNonemptyName,
CONVERT( bit, COUNT( CASE WHEN j.epName = N'Date' AND LEN( j.epValue ) > 0 THEN 1 END ) ) AS HasNonemptyDate,
CONVERT( bit, COUNT( CASE WHEN j.epName = N'Link' AND LEN( j.epValue ) > 0 THEN 1 END ) ) AS HasNonemptyLink
TableSchema TableName HasName HasDate HasLink HasNonemptyName HasNonemptyDate HasNonemptyLink
dbo Table_A True True True True True True
dbo Table_B True True False True False False
dbo Table_C False False False False False False
Warning: Null value is eliminated by an aggregate or other SET operation.