uspInsertMachineConnectionLog.sql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. USE [OCPP_ConnectionLogDBContext]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[uspInsertMachineConnectionLog] Script Date: 2019/07/25 下午 04:12:56 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author: <Author,,Name>
  10. -- Create date: <Create Date,,>
  11. -- Description: <Description,,>
  12. -- =============================================
  13. CREATE PROCEDURE [dbo].[uspInsertMachineConnectionLog]
  14. -- Add the parameters for the stored procedure here
  15. @CreatedOn datetime,
  16. @ChargePointSerialNumber nvarchar(25) ,
  17. @MessageType nvarchar(50) ,
  18. @Data nvarchar(3600) ,
  19. @Msg nvarchar(200)
  20. AS
  21. BEGIN
  22. DECLARE @CurrentTable nvarchar(100);
  23. SET @CurrentTable = 'MachineConnectionLog'+CONVERT(varchar(6),@CreatedOn,12);
  24. -- SET NOCOUNT ON added to prevent extra result sets from
  25. -- interfering with SELECT statements.
  26. SET NOCOUNT ON;
  27. IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
  28. WHERE TABLE_NAME = @CurrentTable)
  29. BEGIN
  30. PRINT 'Yes'
  31. END
  32. ELSE
  33. BEGIN
  34. DECLARE @DynamicSQL nvarchar(1000);
  35. SET @DynamicSQL=N'create table '+ @CurrentTable +' ('+' [Id] [bigint] IDENTITY(1,1) NOT NULL,
  36. [ChargePointSerialNumber] [nvarchar](25) NULL,
  37. [MessageType] [nvarchar](50) NULL,
  38. [Data] [nvarchar](3600) NULL,
  39. [Msg] [nvarchar](200) NULL,
  40. [CreatedOn] [datetime] NOT NULL,
  41. CONSTRAINT [PK_dbo.'+ @CurrentTable +'] PRIMARY KEY CLUSTERED
  42. (
  43. [Id] ASC
  44. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  45. ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];';
  46. /*Adding braces is important as suggested by ypercube */
  47. exec (@DynamicSQL);
  48. PRINT 'NO'
  49. END
  50. -- Insert statements for procedure here
  51. DECLARE @sql nvarchar(4000)
  52. SET @sql='INSERT INTO '+@CurrentTable+'
  53. ([ChargePointSerialNumber]
  54. ,[MessageType]
  55. ,[Data]
  56. ,[Msg]
  57. ,[CreatedOn] )
  58. VALUES('''+@ChargePointSerialNumber+''','''+@MessageType+''','''+@Data+''','''+@Msg+''',N'+''''+ CONVERT(char(23), @CreatedOn, 121)+''');';
  59. print(@sql);
  60. exec (@sql);
  61. END
  62. GO