SELECT [name], cast('INSERT [dbo].[sysdiagrams] ([name],[principal_id],[version],[definition])'
	+ ' VALUES (N''NewDiagram_' + [name] + ''', ' +CAST([principal_id] AS varchar) +',1,'
	+ convert(varchar(max),[definition],1) + ')' as XML) AS query
FROM [dbo].[sysdiagrams]
-- WHERE [name]='Diagram_1'
Lo script ritorna una serie di INSERT che andranno eseguite su un altro server SQL in modo da ricreare i diagram.
Si possono portare su un altro server con un semplice copia e incolla.
L'output è simile al seguente:
INSERT [dbo].[sysdiagrams] ([name],[principal_id],[version],[definition]) VALUES (N'NewDiagram_Diagram_1', 1,1,0xD0CF11E0A1B11AE1000000...062885214)
il campo binary (0x...) rappresenta il diagram. Il nuovo diagram avrà nel nome il suffisso NewDiagram_.

Se sul server SQL di destinazione compare il seguente errore:
Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.sysdiagrams'.
significa che devi prima cliccare sul nodo Database diagrams del database di destinazione e rispondere Yes nella finestra di dialogo che si apre.