f_xls_createtable.srf 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. $PBExportHeader$f_xls_createtable.srf
  2. global type f_xls_createtable from function_object
  3. end type
  4. forward prototypes
  5. global function long f_xls_createtable ()
  6. end prototypes
  7. global function long f_xls_createtable ();String createsql_string = ''
  8. createsql_string = "alter table U_XLS_BillList add parentid int not null DEFAULT (0)"
  9. EXECUTE IMMEDIATE :createsql_string;
  10. COMMIT;
  11. createsql_string = "alter table U_XLS_BillList add ROOTid int not null DEFAULT (0)"
  12. EXECUTE IMMEDIATE :createsql_string;
  13. COMMIT;
  14. createsql_string = "alter table U_XLS_BillList add sign char(30) not null DEFAULT ('')"
  15. EXECUTE IMMEDIATE :createsql_string;
  16. COMMIT;
  17. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT PK_U_XLS_BillList"
  18. EXECUTE IMMEDIATE :createsql_string;
  19. COMMIT;
  20. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillList] WITH NOCHECK ADD "
  21. createsql_string += " CONSTRAINT [PK_U_XLS_BillList] PRIMARY KEY CLUSTERED "
  22. createsql_string += " ( "
  23. createsql_string += " [BillID] "
  24. createsql_string += " ) ON [PRIMARY] "
  25. EXECUTE IMMEDIATE :createsql_string;
  26. COMMIT;
  27. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT IX_U_XLS_BillList"
  28. EXECUTE IMMEDIATE :createsql_string;
  29. COMMIT;
  30. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT IX_U_XLS_BillList_1"
  31. EXECUTE IMMEDIATE :createsql_string;
  32. COMMIT;
  33. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT IX_U_XLS_BillList_2"
  34. EXECUTE IMMEDIATE :createsql_string;
  35. COMMIT;
  36. createsql_string = " ALTER TABLE [dbo].[U_XLS_BillList] ADD "
  37. createsql_string += " CONSTRAINT [IX_U_XLS_BillList] UNIQUE NONCLUSTERED "
  38. createsql_string += " ( "
  39. createsql_string += " [BillName], "
  40. createsql_string += " [parentid] "
  41. createsql_string += " ) ON [PRIMARY] "
  42. EXECUTE IMMEDIATE :createsql_string;
  43. COMMIT;
  44. createsql_string = " ALTER TABLE [dbo].[U_XLS_BillList] ADD "
  45. createsql_string += " CONSTRAINT [IX_U_XLS_BillList_1] UNIQUE NONCLUSTERED "
  46. createsql_string += " ( "
  47. createsql_string += " [BillType], "
  48. createsql_string += " [parentid] "
  49. createsql_string += " ) ON [PRIMARY] "
  50. EXECUTE IMMEDIATE :createsql_string;
  51. COMMIT;
  52. createsql_string = " ALTER TABLE [dbo].[U_XLS_BillList] ADD "
  53. createsql_string += " CONSTRAINT [IX_U_XLS_BillList_2] UNIQUE NONCLUSTERED "
  54. createsql_string += " ( "
  55. createsql_string += " [sign], "
  56. createsql_string += " [parentid] "
  57. createsql_string += " ) ON [PRIMARY] "
  58. EXECUTE IMMEDIATE :createsql_string;
  59. COMMIT;
  60. //createsql_string = "alter table U_XLS_BillColumn_Def add parentid int not null DEFAULT (0)"
  61. //EXECUTE IMMEDIATE :createsql_string;
  62. //COMMIT;
  63. createsql_string = "alter table U_XLS_BillColumn_Def drop CONSTRAINT PK_U_XLS_BillColumn_Def"
  64. EXECUTE IMMEDIATE :createsql_string;
  65. COMMIT;
  66. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillColumn_Def] WITH NOCHECK ADD "
  67. createsql_string += " CONSTRAINT [PK_U_XLS_BillColumn_Def] PRIMARY KEY CLUSTERED "
  68. createsql_string += " ( "
  69. createsql_string += " [ColumnID], "
  70. createsql_string += " [BillID] "
  71. createsql_string += " ) ON [PRIMARY] "
  72. EXECUTE IMMEDIATE :createsql_string;
  73. COMMIT;
  74. createsql_string = "alter table U_XLS_BillColumn_Def drop CONSTRAINT IX_U_XLS_BillColumn_Def"
  75. EXECUTE IMMEDIATE :createsql_string;
  76. COMMIT;
  77. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillColumn_Def] ADD "
  78. createsql_string += " CONSTRAINT [IX_U_XLS_BillColumn_Def] UNIQUE NONCLUSTERED "
  79. createsql_string += " ( "
  80. createsql_string += " [SignNAME], "
  81. createsql_string += " [BillID] "
  82. createsql_string += " ) ON [PRIMARY] "
  83. EXECUTE IMMEDIATE :createsql_string;
  84. COMMIT;
  85. createsql_string = "alter table U_XLS_BillColumn_Def drop CONSTRAINT IX_U_XLS_BillColumn_Def_1"
  86. EXECUTE IMMEDIATE :createsql_string;
  87. COMMIT;
  88. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillColumn_Def] ADD "
  89. createsql_string += " CONSTRAINT [IX_U_XLS_BillColumn_Def_1] UNIQUE NONCLUSTERED "
  90. createsql_string += " ( "
  91. createsql_string += " [ColumnName], "
  92. createsql_string += " [BillID] "
  93. createsql_string += " ) ON [PRIMARY] "
  94. EXECUTE IMMEDIATE :createsql_string;
  95. COMMIT;
  96. createsql_string = "SET QUOTED_IDENTIFIER ON "
  97. EXECUTE IMMEDIATE :createsql_string;
  98. COMMIT;
  99. createsql_string = "SET ANSI_NULLS ON "
  100. EXECUTE IMMEDIATE :createsql_string;
  101. COMMIT;
  102. createsql_string = "CREATE VIEW dbo.uv_xls_billtype "
  103. createsql_string += " AS "
  104. createsql_string += " SELECT dbo.U_XLS_BillList.BillID, RTRIM(CAST(dbo.U_XLS_BillList.BillID AS char)) "
  105. createsql_string += " + '-' + RTRIM(CAST(v_columntype.ColumnType AS char)) AS ogmid, "
  106. createsql_string += " CASE U_XLS_BillList.parentid WHEN 0 THEN '[主表]' + rtrim(U_XLS_BillList.BillName) "
  107. createsql_string += " +'-'+ v_columntype.typename ELSE '[明细]' + rtrim(U_XLS_BillList.BillName) +'-'+ v_columntype.typename "
  108. createsql_string += " END AS ogmname, v_columntype.ColumnType "
  109. createsql_string += " FROM dbo.U_XLS_BillList INNER JOIN "
  110. createsql_string += " (SELECT BillID, ColumnType, "
  111. createsql_string += " CASE columntype WHEN 0 THEN '[字段]' WHEN 1 THEN '[图片]' ELSE '[' + rtrim(cast(ColumnType "
  112. createsql_string += " AS char)) + ']' END AS typename "
  113. createsql_string += " FROM U_XLS_BillColumn_Def "
  114. createsql_string += " GROUP BY BillID, ColumnType) v_columntype ON "
  115. createsql_string += " v_columntype.BillID = dbo.U_XLS_BillList.BillID "
  116. EXECUTE IMMEDIATE :createsql_string;
  117. COMMIT;
  118. createsql_string = "SET QUOTED_IDENTIFIER OFF "
  119. EXECUTE IMMEDIATE :createsql_string;
  120. COMMIT;
  121. createsql_string = "SET ANSI_NULLS ON "
  122. EXECUTE IMMEDIATE :createsql_string;
  123. COMMIT;
  124. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT IX_U_XLS_BillList_3"
  125. EXECUTE IMMEDIATE :createsql_string;
  126. COMMIT;
  127. createsql_string = "alter table U_XLS_BillList drop CONSTRAINT IX_U_XLS_BillList_4"
  128. EXECUTE IMMEDIATE :createsql_string;
  129. COMMIT;
  130. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillList] ADD "
  131. createsql_string += " CONSTRAINT [IX_U_XLS_BillList_3] UNIQUE NONCLUSTERED "
  132. createsql_string += " ( "
  133. createsql_string += " [ROOTid], "
  134. createsql_string += " [BillName] "
  135. createsql_string += " ) ON [PRIMARY] "
  136. EXECUTE IMMEDIATE :createsql_string;
  137. COMMIT;
  138. createsql_string = "ALTER TABLE [dbo].[U_XLS_BillList] ADD "
  139. createsql_string += " CONSTRAINT [IX_U_XLS_BillList_4] UNIQUE NONCLUSTERED "
  140. createsql_string += " ( "
  141. createsql_string += " [ROOTid], "
  142. createsql_string += " [sign] "
  143. createsql_string += " ) ON [PRIMARY] "
  144. EXECUTE IMMEDIATE :createsql_string;
  145. COMMIT;
  146. update U_XLS_BillList
  147. set rootid = billid
  148. where parentid = 0;
  149. commit;
  150. RETURN 1
  151. end function