init_sqlserver.sql 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'iwb_railway_costing_v1')
  2. BEGIN
  3. CREATE DATABASE iwb_railway_costing_v1
  4. END
  5. GO
  6. USE iwb_railway_costing_v1
  7. GO
  8. USE iwb_railway_costing_v1
  9. GO
  10. /*-- 删除项目任务表
  11. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_task]') AND type in (N'U'))
  12. BEGIN
  13. DROP TABLE [dbo].[project_task]
  14. END
  15. GO*/
  16. -- 创建项目任务表
  17. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_task]') AND type in (N'U'))
  18. BEGIN
  19. CREATE TABLE [dbo].[project_task] (
  20. [id] INT IDENTITY(1,1) PRIMARY KEY,
  21. [task_name] NVARCHAR(255) NOT NULL,
  22. [task_sort] INT DEFAULT 0,
  23. [task_desc] NVARCHAR(1000) NULL,
  24. [is_cover] INT DEFAULT 0,
  25. [project_id] NVARCHAR(50) NOT NULL,
  26. [budget_id] INT DEFAULT 0,
  27. [item_id] INT NOT NULL,
  28. [item_code] NVARCHAR(255) NOT NULL,
  29. [file_path] NVARCHAR(MAX) NULL,
  30. [process_status] INT NOT NULL DEFAULT 0,
  31. [process_time] DATETIME NULL,
  32. [process_error] NVARCHAR(4000) NULL,
  33. [send_status] INT NOT NULL DEFAULT 0,
  34. [send_time] DATETIME NULL,
  35. [send_error] NVARCHAR(4000) NULL,
  36. [is_del] INT NOT NULL DEFAULT 0,
  37. [deleted_by] NVARCHAR(50) NULL,
  38. [deleted_at] DATETIME NULL,
  39. [created_by] NVARCHAR(50) NULL,
  40. [created_at] DATETIME NOT NULL DEFAULT GETDATE(),
  41. [updated_by] NVARCHAR(50) NULL,
  42. [updated_at] DATETIME NOT NULL DEFAULT GETDATE()
  43. )
  44. CREATE INDEX [idx_project_id] ON [dbo].[project_task] ([project_id])
  45. CREATE INDEX [idx_budget_id] ON [dbo].[project_task] ([budget_id])
  46. CREATE INDEX [idx_item_id] ON [dbo].[project_task] ([item_id])
  47. CREATE INDEX [idx_item_code] ON [dbo].[project_task] ([item_code])
  48. CREATE INDEX [idx_created_at] ON [dbo].[project_task] ([created_at])
  49. END
  50. GO
  51. /* -- 删除项目定额表
  52. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_quota]') AND type in (N'U'))
  53. BEGIN
  54. DROP TABLE [dbo].[project_quota]
  55. END
  56. GO
  57. */
  58. -- 创建项目定额表
  59. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[project_quota]') AND type in (N'U'))
  60. BEGIN
  61. CREATE TABLE [dbo].[project_quota] (
  62. [id] INT IDENTITY(1,1) PRIMARY KEY,
  63. [task_id] INT NOT NULL,
  64. [project_id] NVARCHAR(50) NOT NULL,
  65. [budget_id] INT NOT NULL,
  66. [budget_code] NVARCHAR(50) NULL,
  67. [item_id] INT NOT NULL,
  68. [item_code] NVARCHAR(255) NOT NULL,
  69. [quota_id] INT NULL DEFAULT 0,
  70. [quota_code] NVARCHAR(50) NULL,
  71. [entry_name] NVARCHAR(255) NULL,
  72. [units] NVARCHAR(20) NULL,
  73. [amount] FLOAT NULL,
  74. [ex_file] NVARCHAR(4000) NULL,
  75. [ex_cell] NVARCHAR(50) NULL,
  76. [ex_row] NVARCHAR(4000) NULL,
  77. [ex_unit] NVARCHAR(50) NULL,
  78. [ex_amount] FLOAT NULL,
  79. [send_status] INT NOT NULL DEFAULT 0,
  80. [send_time] DATETIME NULL,
  81. [send_error] NVARCHAR(4000) NULL,
  82. [is_del] INT NOT NULL DEFAULT 0,
  83. [deleted_by] NVARCHAR(50) NULL,
  84. [deleted_at] DATETIME NULL,
  85. [created_by] NVARCHAR(50) NULL,
  86. [created_at] DATETIME NOT NULL DEFAULT GETDATE(),
  87. [updated_by] NVARCHAR(50) NULL,
  88. [updated_at] DATETIME NOT NULL DEFAULT GETDATE()
  89. )
  90. CREATE INDEX [idx_project_id] ON [dbo].[project_quota] ([project_id])
  91. CREATE INDEX [idx_budget_id] ON [dbo].[project_quota] ([budget_id])
  92. CREATE INDEX [idx_item_id] ON [dbo].[project_quota] ([item_id])
  93. CREATE INDEX [idx_item_code] ON [dbo].[project_quota] ([item_code])
  94. CREATE INDEX [idx_created_at] ON [dbo].[project_quota] ([created_at])
  95. END
  96. GO
  97. /*-- 删除日志表
  98. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_log]') AND type in (N'U'))
  99. BEGIN
  100. DROP TABLE [dbo].[sys_log]
  101. END
  102. GO*/
  103. -- 创建日志表
  104. IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sys_log]') AND type in (N'U'))
  105. BEGIN
  106. CREATE TABLE [dbo].[sys_log] (
  107. [id] INT IDENTITY(1,1) PRIMARY KEY,
  108. [username] NVARCHAR(255) NOT NULL,
  109. [operation_type] NVARCHAR(50) NOT NULL,
  110. [operation_desc] NVARCHAR(1000) NULL,
  111. [operation_result] INT NULL,
  112. [operation_module] NVARCHAR(100) NULL,
  113. [operation_data] NVARCHAR(MAX) NULL,
  114. [data_changes] NVARCHAR(MAX) NULL,
  115. [operation_ip] NVARCHAR(50) NULL,
  116. [created_at] DATETIME NOT NULL DEFAULT GETDATE()
  117. )
  118. CREATE INDEX [idx_username] ON [dbo].[sys_log] ([username])
  119. CREATE INDEX [idx_created_at] ON [dbo].[sys_log] ([created_at])
  120. END
  121. GO