USE [OCPP_ConnectionLogDBContext] GO /****** Object: StoredProcedure [dbo].[uspInsertMachineConnectionLog] Script Date: 2019/07/25 下午 04:12:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[uspInsertMachineConnectionLog] -- Add the parameters for the stored procedure here @CreatedOn datetime, @ChargePointSerialNumber nvarchar(25) , @MessageType nvarchar(50) , @Data nvarchar(3600) , @Msg nvarchar(200) AS BEGIN DECLARE @CurrentTable nvarchar(100); SET @CurrentTable = 'MachineConnectionLog'+CONVERT(varchar(6),@CreatedOn,12); -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @CurrentTable) BEGIN PRINT 'Yes' END ELSE BEGIN DECLARE @DynamicSQL nvarchar(1000); SET @DynamicSQL=N'create table '+ @CurrentTable +' ('+' [Id] [bigint] IDENTITY(1,1) NOT NULL, [ChargePointSerialNumber] [nvarchar](25) NULL, [MessageType] [nvarchar](50) NULL, [Data] [nvarchar](3600) NULL, [Msg] [nvarchar](200) NULL, [CreatedOn] [datetime] NOT NULL, CONSTRAINT [PK_dbo.'+ @CurrentTable +'] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY];'; /*Adding braces is important as suggested by ypercube */ exec (@DynamicSQL); PRINT 'NO' END -- Insert statements for procedure here DECLARE @sql nvarchar(4000) SET @sql='INSERT INTO '+@CurrentTable+' ([ChargePointSerialNumber] ,[MessageType] ,[Data] ,[Msg] ,[CreatedOn] ) VALUES('''+@ChargePointSerialNumber+''','''+@MessageType+''','''+@Data+''','''+@Msg+''',N'+''''+ CONVERT(char(23), @CreatedOn, 121)+''');'; print(@sql); exec (@sql); END GO