IF OBJECT_ID(N'dbo.XD_电能表谐波数据', N'U') IS NULL BEGIN CREATE TABLE dbo.XD_电能表谐波数据 ( ID int IDENTITY(1,1) NOT NULL, 工位号 nvarchar(50) NULL, A相电压总谐波畸变 float NULL, B相电压总谐波畸变 float NULL, C相电压总谐波畸变 float NULL, 系统电压总谐波畸变 float NULL, A相电流总谐波畸变 float NULL, B相电流总谐波畸变 float NULL, C相电流总谐波畸变 float NULL, 系统电流总谐波畸变 float NULL, A相电压奇次谐波畸变 float NULL, B相电压奇次谐波畸变 float NULL, C相电压奇次谐波畸变 float NULL, A相电流奇次谐波畸变 float NULL, B相电流奇次谐波畸变 float NULL, C相电流奇次谐波畸变 float NULL, A相电压偶次谐波畸变 float NULL, B相电压偶次谐波畸变 float NULL, C相电压偶次谐波畸变 float NULL, A相电流偶次谐波畸变 float NULL, B相电流偶次谐波畸变 float NULL, C相电流偶次谐波畸变 float NULL, 操作时间 datetime NULL CONSTRAINT DF_XD_电能表谐波数据_操作时间 DEFAULT (GETDATE()), CONSTRAINT PK_XD_电能表谐波数据 PRIMARY KEY CLUSTERED (ID ASC) ); END GO IF NOT EXISTS ( SELECT 1 FROM sys.indexes WHERE name = N'IX_XD_电能表谐波数据_工位号_操作时间' AND object_id = OBJECT_ID(N'dbo.XD_电能表谐波数据') ) BEGIN CREATE NONCLUSTERED INDEX IX_XD_电能表谐波数据_工位号_操作时间 ON dbo.XD_电能表谐波数据 (工位号 ASC, 操作时间 DESC); END GO IF OBJECT_ID(N'dbo.XD_电能表谐波数据_增加', N'P') IS NOT NULL DROP PROCEDURE dbo.XD_电能表谐波数据_增加; GO CREATE PROCEDURE dbo.XD_电能表谐波数据_增加 @工位号 nvarchar(50) = N'', @A相电压总谐波畸变 float = NULL, @B相电压总谐波畸变 float = NULL, @C相电压总谐波畸变 float = NULL, @系统电压总谐波畸变 float = NULL, @A相电流总谐波畸变 float = NULL, @B相电流总谐波畸变 float = NULL, @C相电流总谐波畸变 float = NULL, @系统电流总谐波畸变 float = NULL, @A相电压奇次谐波畸变 float = NULL, @B相电压奇次谐波畸变 float = NULL, @C相电压奇次谐波畸变 float = NULL, @A相电流奇次谐波畸变 float = NULL, @B相电流奇次谐波畸变 float = NULL, @C相电流奇次谐波畸变 float = NULL, @A相电压偶次谐波畸变 float = NULL, @B相电压偶次谐波畸变 float = NULL, @C相电压偶次谐波畸变 float = NULL, @A相电流偶次谐波畸变 float = NULL, @B相电流偶次谐波畸变 float = NULL, @C相电流偶次谐波畸变 float = NULL AS BEGIN SET NOCOUNT ON; IF NULLIF(LTRIM(RTRIM(@工位号)), N'') IS NULL RETURN; -- 电表返回 -1 表示无效数据;任一谐波点无效时,本次整条采集不入库。 IF @A相电压总谐波畸变 = -1 OR @B相电压总谐波畸变 = -1 OR @C相电压总谐波畸变 = -1 OR @系统电压总谐波畸变 = -1 OR @A相电流总谐波畸变 = -1 OR @B相电流总谐波畸变 = -1 OR @C相电流总谐波畸变 = -1 OR @系统电流总谐波畸变 = -1 OR @A相电压奇次谐波畸变 = -1 OR @B相电压奇次谐波畸变 = -1 OR @C相电压奇次谐波畸变 = -1 OR @A相电流奇次谐波畸变 = -1 OR @B相电流奇次谐波畸变 = -1 OR @C相电流奇次谐波畸变 = -1 OR @A相电压偶次谐波畸变 = -1 OR @B相电压偶次谐波畸变 = -1 OR @C相电压偶次谐波畸变 = -1 OR @A相电流偶次谐波畸变 = -1 OR @B相电流偶次谐波畸变 = -1 OR @C相电流偶次谐波畸变 = -1 RETURN; -- 谐波畸变允许为 0;只有全部点位都为空时跳过保存。 IF @A相电压总谐波畸变 IS NULL AND @B相电压总谐波畸变 IS NULL AND @C相电压总谐波畸变 IS NULL AND @系统电压总谐波畸变 IS NULL AND @A相电流总谐波畸变 IS NULL AND @B相电流总谐波畸变 IS NULL AND @C相电流总谐波畸变 IS NULL AND @系统电流总谐波畸变 IS NULL AND @A相电压奇次谐波畸变 IS NULL AND @B相电压奇次谐波畸变 IS NULL AND @C相电压奇次谐波畸变 IS NULL AND @A相电流奇次谐波畸变 IS NULL AND @B相电流奇次谐波畸变 IS NULL AND @C相电流奇次谐波畸变 IS NULL AND @A相电压偶次谐波畸变 IS NULL AND @B相电压偶次谐波畸变 IS NULL AND @C相电压偶次谐波畸变 IS NULL AND @A相电流偶次谐波畸变 IS NULL AND @B相电流偶次谐波畸变 IS NULL AND @C相电流偶次谐波畸变 IS NULL RETURN; INSERT INTO dbo.XD_电能表谐波数据 ( 工位号, A相电压总谐波畸变, B相电压总谐波畸变, C相电压总谐波畸变, 系统电压总谐波畸变, A相电流总谐波畸变, B相电流总谐波畸变, C相电流总谐波畸变, 系统电流总谐波畸变, A相电压奇次谐波畸变, B相电压奇次谐波畸变, C相电压奇次谐波畸变, A相电流奇次谐波畸变, B相电流奇次谐波畸变, C相电流奇次谐波畸变, A相电压偶次谐波畸变, B相电压偶次谐波畸变, C相电压偶次谐波畸变, A相电流偶次谐波畸变, B相电流偶次谐波畸变, C相电流偶次谐波畸变 ) VALUES ( @工位号, @A相电压总谐波畸变 / 1000.0, @B相电压总谐波畸变 / 1000.0, @C相电压总谐波畸变 / 1000.0, @系统电压总谐波畸变 / 1000.0, @A相电流总谐波畸变 / 1000.0, @B相电流总谐波畸变 / 1000.0, @C相电流总谐波畸变 / 1000.0, @系统电流总谐波畸变 / 1000.0, @A相电压奇次谐波畸变 / 1000.0, @B相电压奇次谐波畸变 / 1000.0, @C相电压奇次谐波畸变 / 1000.0, @A相电流奇次谐波畸变 / 1000.0, @B相电流奇次谐波畸变 / 1000.0, @C相电流奇次谐波畸变 / 1000.0, @A相电压偶次谐波畸变 / 1000.0, @B相电压偶次谐波畸变 / 1000.0, @C相电压偶次谐波畸变 / 1000.0, @A相电流偶次谐波畸变 / 1000.0, @B相电流偶次谐波畸变 / 1000.0, @C相电流偶次谐波畸变 / 1000.0 ); END GO