To copy database diagrams from database dbA to database dbB, run the following in the Query Analyser:
INSERT INTO dbB.dbo.sysdiagrams
SELECT[name],[principal_id],[version],[definition]
FROM dbA.dbo.sysdiagrams
--SELECT * FROM dbB.dbo.sysdiagrams
[Thanks to Pankaj Saha, a colleague at work, for this code snippet.]
Edit: This also works for SQL Server 2008.
Edit: This also works for SQL Server 2012, Service Pack 4.
Edit: Some other links that could be useful:
http://stackoverflow.com/questions/3310137/sql-server-2005-how-to-copy-a-database-diagram-to-another-server
If you get an error "Cannot insert the value null into column "diagram_id"", check this out: http://social.msdn.microsoft.com/Forums/en-US/sqldocumentation/thread/767de035-5509-4150-af21-8b6752653f05
INSERT INTO dbB.dbo.sysdiagrams
SELECT[name],[principal_id],[version],[definition]
FROM dbA.dbo.sysdiagrams
--SELECT * FROM dbB.dbo.sysdiagrams
[Thanks to Pankaj Saha, a colleague at work, for this code snippet.]
Edit: This also works for SQL Server 2008.
Edit: This also works for SQL Server 2012, Service Pack 4.
Edit: Some other links that could be useful:
http://stackoverflow.com/questions/3310137/sql-server-2005-how-to-copy-a-database-diagram-to-another-server
If you get an error "Cannot insert the value null into column "diagram_id"", check this out: http://social.msdn.microsoft.com/Forums/en-US/sqldocumentation/thread/767de035-5509-4150-af21-8b6752653f05