Files
16-Xikai-MesProjectNew/DatabaseScripts/XD_电能表谐波数据.sql
2026-05-29 09:34:04 +08:00

174 lines
6.7 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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