Advertisement
trietnv

TableInformation

Sep 21st, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1.  
  2. DECLARE @data VARCHAR(100) = 'RoleLookUp'
  3. DECLARE @stt VARCHAR(100) = '83'
  4. DECLARE @SCHEMA VARCHAR(100) = 'tmp'
  5. select '2.' + @stt + ' ' + @SCHEMA + '.' + @data + ' Table','','','','','','' union all
  6. select 'Column Name','Data Type','Null','Index','Key','Default','Description' union all
  7. SELECT --cl.TABLE_NAME,
  8. c.NAME 'Column Name',
  9. CASE
  10. WHEN t.NAME = 'int' THEN t.NAME
  11. WHEN t.NAME = 'varchar' THEN t.NAME + '('
  12. + case when Cast(c.max_length AS VARCHAR(100)) = '-1' then 'max' else Cast(c.max_length AS VARCHAR(100)) end + ')'
  13. WHEN t.NAME in ('datetime','bit','int','float','bigint','tinyint','date','timestamp') THEN t.NAME
  14. WHEN t.NAME = 'nvarchar' THEN t.NAME + '('
  15. + case when Cast(c.max_length AS VARCHAR(100)) = '-1' then 'max' else Cast(c.max_length AS VARCHAR(100)) end + ')'
  16. WHEN t.NAME = 'varbinary' THEN t.NAME + '('
  17. + case when Cast(c.max_length AS VARCHAR(100)) = '-1' then 'max' else Cast(c.max_length AS VARCHAR(100)) end + ')'
  18. ELSE '--------------' + t.NAME + '('
  19. + Cast(c.max_length AS VARCHAR(100)) + ')'
  20. END 'Data Type',
  21. CASE
  22. WHEN c.is_nullable = 1 THEN 'V'
  23. ELSE 'X'
  24. END 'Null',
  25. CASE
  26. WHEN Isnull(i.index_id, 0) = 0 THEN 'X'
  27. ELSE 'V'
  28. END 'Index',
  29. CASE
  30. WHEN Isnull(i.is_primary_key, 0) = 1 THEN 'PK'
  31. ELSE ''
  32. END 'Key',
  33. CASE
  34. WHEN c.default_object_id = 0 THEN 'X'
  35. ELSE 'V'
  36. END 'Default',
  37. --'Column' + Cast(c.column_id AS VARCHAR(100)) +
  38. c.NAME+
  39. CASE WHEN c.is_identity = 1 THEN
  40. ' with Auto number' ELSE '' END 'Description'
  41. --, CASE
  42. -- WHEN c.default_object_id = 0 THEN ''
  43. -- ELSE ''
  44. -- + Substring(cl.column_default, 2, Len(cl.column_default)-2)
  45. --END 'Default'
  46. FROM sys.columns c
  47. INNER JOIN sys.types t
  48. ON c.user_type_id = t.user_type_id
  49. INNER JOIN (SELECT b.id,
  50. table_schema,
  51. table_name,
  52. column_name,
  53. column_default
  54. FROM information_schema.columns a
  55. INNER JOIN sys.sysobjects b
  56. ON table_name = b.NAME
  57. WHERE table_schema = @SCHEMA) cl
  58. ON c.object_id = cl.id
  59. AND c.NAME = cl.column_name
  60. LEFT OUTER JOIN sys.index_columns ic
  61. ON ic.object_id = c.object_id
  62. AND ic.column_id = c.column_id
  63. LEFT OUTER JOIN sys.indexes i
  64. ON ic.object_id = i.object_id
  65. AND ic.index_id = i.index_id
  66. WHERE c.object_id = Object_id(@SCHEMA + '.' + @data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement