Austin Muts

Austin Muts

  • 1.3k
  • 304
  • 118.2k

Using a cursor to loop through data in SQL

Sep 25 2019 4:05 AM
My @SQL is not executing because of my synatax,any help will be appreciated
  1. DECLARE @SQL NVARCHAR(MAX) = '';  
  2. BEGIN  
  3. IF OBJECT_ID('tempdb..#Config'IS NOT NULL DROP TABLE #Config;  
  4. CREATE TABLE #Config  
  5. (  
  6. [TempID] INT IDENTITY(1, 1),  
  7. [ID] NVARCHAR(36),  
  8. [DocID] NVARCHAR(36),  
  9. [FieldNo] INT,  
  10. [FieldName] NVARCHAR(450),  
  11. [DisplayName] NVARCHAR(450),  
  12. [Description] NVARCHAR(450),  
  13. [DefaultValue] NVARCHAR(450),  
  14. [DisplayFormat] NVARCHAR(450),  
  15. [MaxLength] INT,  
  16. [MinLength] INT,  
  17. [DataType] SMALLINT,  
  18. [ColumnName] NVARCHAR(450),  
  19. [BarcodeNo] INT,  
  20. [DataBehaviour] SMALLINT,  
  21. [ListID] NVARCHAR(36),  
  22. [MapToString] BIT,  
  23. [ScanIndex] INT,  
  24. [ScanRequired] INT,  
  25. [ValidationID] NVARCHAR(450),  
  26. [RegexValue] NVARCHAR(450),  
  27. [ValidationTrigger] SMALLINT,  
  28. [DecimalPrecision] INT,  
  29. [DBCanNull] BIT ,  
  30. [IsPrimary] BIT,  
  31. [IsAuditable] BIT,  
  32. [DBSchemaDefault] BIT,  
  33. [DBSchemaDefaultValue] NVARCHAR(450),  
  34. [Updated] DATETIME,  
  35. [UpdatedBy] NVARCHAR(450) ,  
  36. [Created] DATETIME,  
  37. [CreatedBy] NVARCHAR(450),  
  38. [SourceID] NVARCHAR(450)  
  39. )  
  40. INSERT INTO #Config VALUES (NEWID(), 'b5f3cf6e-190b-4132-b90e-d320414cfaee', 1, 'ApplicationID''Application_ID''Idx1', N'', N'', 30, 0, 0, N'ApplicationID', 0, 0, N'', 0, 0, 0, N''NULL, 4, 0, 1, 0, 0, 0, NULLCAST(N'2019-09-23 10:26:35.943' AS DateTime), N'1aa591f0-a2c1-41b3-815b-68e0f5ef9478'CAST('2019-09-23 10:19:25.197' AS DateTime), '1aa591f0-a2c1-41b3-815b-68e0f5ef9478'NULL)  
  41. SELECT * FROM #Config  
  42. DECLARE @TempID INT = 0;  
  43. DECLARE @ID NVARCHAR(36) = '';  
  44. DECLARE @DocID NVARCHAR(36) = '';  
  45. DECLARE @FieldNo INT = 0;  
  46. DECLARE @FieldName NVARCHAR(450) = '';  
  47. DECLARE @DisplayName NVARCHAR(450) = '';  
  48. DECLARE @Description NVARCHAR(450) = '';  
  49. DECLARE @DefaultValue NVARCHAR(450) = '';  
  50. DECLARE @DisplayFormat NVARCHAR(450) = '';  
  51. DECLARE @MaxLength INT = 0;  
  52. DECLARE @MinLength INT = 0;  
  53. DECLARE @DataType SMALLINT = 0;  
  54. DECLARE @ColumnName NVARCHAR(450) = '';  
  55. DECLARE @BarcodeNo INT = 0;  
  56. DECLARE @DataBehaviour SMALLINT = 0;  
  57. DECLARE @ListID NVARCHAR(36) = '';  
  58. DECLARE @MapToString BIT = '';  
  59. DECLARE @ScanIndex INT = 0;  
  60. DECLARE @ScanRequired INT = 0;  
  61. DECLARE @ValidationID NVARCHAR(450) = '';  
  62. DECLARE @RegexValue NVARCHAR(450) = '';  
  63. DECLARE @ValidationTrigger SMALLINT = 0;  
  64. DECLARE @DecimalPrecision INT = 0;  
  65. DECLARE @DBCanNull BIT = '';  
  66. DECLARE @IsPrimary BIT = '';  
  67. DECLARE @IsAuditable BIT = '';  
  68. DECLARE @DBSchemaDefault BIT = '';  
  69. DECLARE @DBSchemaDefaultValue BIT = '';  
  70. DECLARE @Updated DATETIME = '';  
  71. DECLARE @UpdatedBy NVARCHAR(450) = '';  
  72. DECLARE @Created DATETIME = '';  
  73. DECLARE @CreatedBy NVARCHAR(450) = '';  
  74. DECLARE @SourceID NVARCHAR(450) = '';  
  75. DECLARE cursor_document CURSOR  
  76. FOR SELECT  
  77. [TempID] ,  
  78. [ID] ,  
  79. [DocID] ,  
  80. [FieldNo] ,  
  81. [FieldName] ,  
  82. [DisplayName] ,  
  83. [Description] ,  
  84. [DefaultValue] ,  
  85. [DisplayFormat] ,  
  86. [MaxLength] ,  
  87. [MinLength] ,  
  88. [DataType] ,  
  89. [ColumnName] ,  
  90. [BarcodeNo] ,  
  91. [DataBehaviour] ,  
  92. [ListID] ,  
  93. [MapToString],  
  94. [ScanIndex],  
  95. [ScanRequired],  
  96. [ValidationID] ,  
  97. [RegexValue] ,  
  98. [ValidationTrigger] ,  
  99. [DecimalPrecision] ,  
  100. [DBCanNull] ,  
  101. [IsPrimary] ,  
  102. [IsAuditable] ,  
  103. [DBSchemaDefault] ,  
  104. [DBSchemaDefaultValue] ,  
  105. [Updated] ,  
  106. [UpdatedBy] ,  
  107. [Created] ,  
  108. [CreatedBy] ,  
  109. [SourceID]  
  110. FROM  
  111. #Config;  
  112. OPEN cursor_document;  
  113. FETCH NEXT FROM cursor_document INTO  
  114. @TempID,  
  115. @ID,  
  116. @DocID ,  
  117. @FieldNo ,  
  118. @FieldName ,  
  119. @DisplayName,  
  120. @Description ,  
  121. @DefaultValue,  
  122. @DisplayFormat,  
  123. @MaxLength ,  
  124. @MinLength,  
  125. @DataType,  
  126. @ColumnName,  
  127. @BarcodeNo ,  
  128. @DataBehaviour ,  
  129. @ListID ,  
  130. @MapToString,  
  131. @ScanIndex,  
  132. @ScanRequired,  
  133. @ValidationID,  
  134. @RegexValue ,  
  135. @ValidationTrigger,  
  136. @DecimalPrecision ,  
  137. @DBCanNull ,  
  138. @IsPrimary,  
  139. @IsAuditable,  
  140. @DBSchemaDefault ,  
  141. @DBSchemaDefaultValue,  
  142. @Updated ,  
  143. @UpdatedBy,  
  144. @Created ,  
  145. @CreatedBy,  
  146. @SourceID  
  147. WHILE @@FETCH_STATUS = 0  
  148. BEGIN  
  149. PRINT 'CREATING DOCUMENT :' + @DocID + ' FROM : ' + CAST(@DocID AS VARCHAR);  
  150. SELECT @SQL = N'  
  151. INSERT INTO [dbo].[SysDoc]  
  152. ([ID],  
  153. [DocID],  
  154. [FieldNo],  
  155. [FieldName],  
  156. [DisplayName],  
  157. [Description],  
  158. [DefaultValue],  
  159. [DisplayFormat],  
  160. [MaxLength],  
  161. [MinLength],  
  162. [DataType],  
  163. [ColumnName],  
  164. [BarcodeNo],  
  165. [DataBehaviour],  
  166. [ListID],  
  167. [MapToString],  
  168. [ScanIndex],  
  169. [ScanRequired],  
  170. [ValidationID],  
  171. [RegexValue],  
  172. [ValidationTrigger],  
  173. [DecimalPrecision],  
  174. [DBCanNull],  
  175. [IsPrimary],  
  176. [IsAuditable],  
  177. [DBSchemaDefault],  
  178. [DBSchemaDefaultValue],  
  179. [Updated],  
  180. [UpdatedBy],  
  181. [Created],  
  182. [CreatedBy],  
  183. [SourceID]  
  184. SELECT  
  185. @TempID,  
  186. @ID,  
  187. @DocID ,  
  188. @FieldNo ,  
  189. @FieldName ,  
  190. @DisplayName,  
  191. @Description ,  
  192. @DefaultValue,  
  193. @DisplayFormat,  
  194. @MaxLength ,  
  195. @MinLength,  
  196. @DataType,  
  197. @ColumnName,  
  198. @BarcodeNo ,  
  199. @DataBehaviour ,  
  200. @ListID ,  
  201. @MapToString,  
  202. @ScanIndex,  
  203. @ScanRequired,  
  204. @ValidationID,  
  205. @RegexValue ,  
  206. @ValidationTrigger,  
  207. @DecimalPrecision ,  
  208. @DBCanNull ,  
  209. @IsPrimary,  
  210. @IsAuditable,  
  211. @DBSchemaDefault ,  
  212. @DBSchemaDefaultValue,  
  213. @Updated ,  
  214. @UpdatedBy,  
  215. @Created ,  
  216. @CreatedBy,  
  217. @SourceID '  
  218. PRINT @SQL  
  219. EXEC @SQL  
  220. FETCH NEXT FROM cursor_document INTO  
  221. @TempID,  
  222. @ID,  
  223. @DocID ,  
  224. @FieldNo ,  
  225. @FieldName ,  
  226. @DisplayName,  
  227. @Description ,  
  228. @DefaultValue,  
  229. @DisplayFormat,  
  230. @MaxLength ,  
  231. @MinLength,  
  232. @DataType,  
  233. @ColumnName,  
  234. @BarcodeNo ,  
  235. @DataBehaviour ,  
  236. @ListID ,  
  237. @MapToString,  
  238. @ScanIndex,  
  239. @ScanRequired,  
  240. @ValidationID,  
  241. @RegexValue ,  
  242. @ValidationTrigger,  
  243. @DecimalPrecision ,  
  244. @DBCanNull ,  
  245. @IsPrimary,  
  246. @IsAuditable,  
  247. @DBSchemaDefault ,  
  248. @DBSchemaDefaultValue,  
  249. @Updated ,  
  250. @UpdatedBy,  
  251. @Created ,  
  252. @CreatedBy,  
  253. @SourceID  
  254. END  
  255. CLOSE cursor_document;  
  256. DEALLOCATE cursor_document;  
  257. END  

Answers (6)