数据未插入 SQL 服务器 table

Data is not inserted into the SQL Server table

我正在开发一个项目,我在SQL服务器部分遇到了困难,我创建了一个程序,当table[=13=中的值嗡嗡声时,我需要它] 大于 10 他将该行放在另一行 table Bi_alerta 但问题是当我 运行 代码时一切正常,但当我看到它时却没有将任何内容放入 table ...只是不要将任何行添加到 Bi_alerta table.

SQL 服务器存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[Bi_alertainset] 
    @alerta_hum varchar(50),
    @alerta_temp varchar(50),
    @alerta_lpg varchar(50),
    @alerta_co varchar(50),
    @alerta_fumo varchar(50)
AS
BEGIN
    SELECT
        @alerta_hum = med_hum,
        @alerta_temp = med_temp,
        @alerta_lpg = med_lpg,
        @alerta_co = med_co,
        @alerta_fumo = med_fumo
    FROM 
        Bi_medicao

    IF (@alerta_hum > 10)
        INSERT INTO Bi_alerta (alerta_hum, alerta_temp, alerta_lpg, alerta_co, alerta_fumo)
        VALUES (@alerta_hum, @alerta_temp, @alerta_lpg, @alerta_co, @alerta_fumo)
END

没有任何样本数据,table结构等,很难重现。无论如何,我建议修改插入如下:

INSERT INTO Bi_alerta (alerta_hum, alerta_temp, alerta_lpg, alerta_co, alerta_fumo)
SELECT med_hum, med_temp, med_lpg, med_co, med_fumo
  FROM Bi_medicao
  WHERE CAST(med_hum AS INT) > 10

我认为问题可能在于@alerta_hum 是 Varchar 而不是 INT。要么将声明更改为 INT,要么将 @alerta_hum 转换为 另外,我建议也对 IF 使用 BEGIN/END。

IF (CONVERT(INT, @alerta_hum) > 10)
BEGIN
    INSERT INTO Bi_alerta (alerta_hum, alerta_temp, alerta_lpg, alerta_co, alerta_fumo)
    VALUES (@alerta_hum, @alerta_temp, @alerta_lpg, @alerta_co, @alerta_fumo)
END

如果还是不行,你应该检查你的变量是否在用 Bi_medicao 重置后都被赋值了。简单的方法是插入一些 PRINT 语句,如 PRINT @alerta_hum