The scenario for this is that you have a Test server and a Production server. You are rolling out all changes that have been tested on the Test server to the Production server. You did, being a pro and all, of course make a note of all the changes that were done to properties on the Test server since the last rollout to Production, but just to make sure you want to check what new properties have been added.
Step 1
Add the Production server as a linked server in SQL Server Management Studio on the Test server, in this example called [LinkedServer].
Step 2
Create a new query on the Test server and paste the following query into it. You will need to substitute the names of the database and linked server with names from your environment.
-- CHECKS IF ANY NEW FIELDS HAVE BEEN ADDED ON THE TEST SERVER
-- THAT DO NOT EXIST ON THE PRODUCTION SERVER
USE EPiServerDb;
GO
IF EXISTS(
SELECT testTable.pkID, prodTable.pkID
FROM tblPageDefinition testTable
LEFT JOIN [LinkedServer].[EPiServerDb].[dbo].[tblPageDefinition] prodTable
ON testTable.pkID = prodTable.pkID
WHERE prodTable.pkID IS NULL)
BEGIN
PRINT 'NEW PAGE PROPERTIES DETECTED!'
SELECT pt.Name, pd.Name
FROM tblPageType pt JOIN tblPageDefinition pd ON pt.pkID = pd.fkPageTypeID
WHERE pd.pkID IN (
SELECT testTable.pkID
FROM tblPageDefinition testTable
LEFT JOIN [LinkedServer].[EPiServerDb].[dbo].[tblPageDefinition] prodTable
ON testTable.pkID = prodTable.pkID
WHERE prodTable.pkID IS NULL)
END
ELSE BEGIN
PRINT 'NO NEW PROPERTIES DETECTED.'
END
Step 3
If any new properties have been added, you will see a list of the names of page templates and what properties are new.
This script was tested on EPiServer 4.61/62 only, but may also work for newer versions of EPiServer.