Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. SET NOCOUNT ON
  2.  
  3. SELECT 'USE ' + QUOTENAME(DB_NAME(), '[') + '
  4. GO';
  5.  
  6. SELECT '
  7. CREATE TYPE ' + QUOTENAME(ss.name, '[') + '.' + QUOTENAME(st.name, '[') + ' FROM ' +
  8. QUOTENAME(bs.[name], '[') +
  9. CASE bs.[name]
  10. WHEN 'char' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
  11. WHEN 'nchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length/2) + ')' END)
  12. WHEN 'varchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
  13. WHEN 'nvarchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length/2) + ')' END)
  14. WHEN 'numeric' THEN (CASE ISNULL(st.[precision], 0) WHEN 0 THEN '' ELSE '(' + convert(varchar(10), st.[precision]) + ', ' + convert(varchar(10), st.[scale]) + ')' END)
  15. WHEN 'decimal' THEN (CASE ISNULL(st.[precision], 0) WHEN 0 THEN '' ELSE '(' + convert(varchar(10), st.[precision]) + ', ' + convert(varchar(10), st.[scale]) + ')' END)
  16. WHEN 'varbinary' THEN (CASE st.max_length WHEN -1 THEN '(max)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
  17. ELSE ''
  18. END +
  19. '
  20. GO
  21. '
  22. FROM sys.types st
  23. INNER JOIN sys.schemas ss ON st.[schema_id] = ss.[schema_id]
  24. INNER JOIN sys.types bs ON bs.[user_type_id] = st.[system_type_id]
  25. WHERE st.[is_user_defined] = 1 -- exclude system types
  26. ORDER BY st.[name], ss.[name]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement