Guest User

Untitled

a guest
Dec 11th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. use master
  2. go
  3.  
  4. DECLARE @Server1 VARCHAR(100) ='[LD38SQLEXPRESS2005].'; --include a dot at the end
  5. DECLARE @DB1 VARCHAR(100) = '[TestDB]';
  6. DECLARE @Table1 VARCHAR(100) = 'Customer';
  7.  
  8. DECLARE @Server2 VARCHAR(100) ='[LD38SQLEXPRESS2005].'; --include a dot at the end
  9. DECLARE @DB2 VARCHAR(100) = '[TestDB2]';
  10. DECLARE @Table2 VARCHAR(100) = 'Customer';
  11.  
  12. DECLARE @SQL NVARCHAR(MAX);
  13.  
  14.  
  15. SET @SQL =
  16. '
  17. SELECT Table1.ServerName,
  18. Table1.DBName,
  19. Table1.SchemaName,
  20. Table1.TableName,
  21. Table1.ColumnName,
  22. Table1.name DataType,
  23. Table1.Length,
  24. Table1.Precision,
  25. Table1.Scale,
  26. Table1.Is_Identity,
  27. Table1.Is_Nullable,
  28. Table2.ServerName,
  29. Table2.DBName,
  30. Table2.SchemaName,
  31. Table2.TableName,
  32. Table2.ColumnName,
  33. Table2.name DataType,
  34. Table2.Length,
  35. Table2.Precision,
  36. Table2.Scale,
  37. Table2.Is_Identity,
  38. Table2.Is_Nullable
  39. FROM
  40. (SELECT ''' + @Server1 + ''' ServerName,
  41. ''' + @DB1 + ''' DbName,
  42. SCHEMA_NAME(t.schema_id) SchemaName,
  43. t.Name TableName,
  44. c.Name ColumnName,
  45. st.Name,
  46. c.Max_Length Length,
  47. c.Precision,
  48. c.Scale,
  49. c.Is_Identity,
  50. c.Is_Nullable
  51. FROM ' + @Server1 + @DB1 + '.sys.tables t
  52. INNER JOIN ' + @Server1 + @DB1 + '.sys.columns c ON t.Object_ID = c.Object_ID
  53. INNER JOIN sys.types st ON St.system_type_id = c.System_Type_id AND st.user_type_id = c.user_type_id
  54. WHERE t.Name = ''' + @Table1 + ''') Table1
  55. FULL OUTER JOIN
  56. (SELECT ''' + @Server2 + ''' ServerName,
  57. ''' + @DB2 + ''' DbName,
  58. SCHEMA_NAME(t.schema_id) SchemaName,
  59. t.name TableName,
  60. c.name ColumnName,
  61. st.Name,
  62. c.max_length Length,
  63. c.Precision,
  64. c.Scale,
  65. c.Is_Identity,
  66. c.Is_Nullable
  67. FROM ' + @Server2 + @DB2 + '.sys.tables t
  68. INNER JOIN ' + @Server2 + @DB2 + '.sys.columns c ON t.Object_ID = c.Object_ID
  69. INNER JOIN sys.types st ON St.system_type_id = c.System_Type_id AND st.user_type_id = c.user_type_id
  70. WHERE t.Name = ''' + @Table2 + ''') Table2
  71. ON Table1.ColumnName = Table2.ColumnName
  72. ORDER BY CASE WHEN Table1.ColumnName IS NULL THEN 2 ELSE 1 END, Table1.ColumnName
  73. '
  74.  
  75. EXEC sp_executesql @SQL
Add Comment
Please, Sign In to add comment