Fehler beim konvertieren von Datentyp varchar in numeric. SQL Server

Ich bin das schreiben von Daten auf den Sql-Server-Datenbank.
Wenn Daten geschrieben werden, wird ein trigger ausgeführt wird.


TRIGGER

ALTER TRIGGER Alert ON records AFTER INSERT AS
BEGIN

DECLARE @tempmin decimal = 0
DECLARE @current_max_idAlarm int = (SELECT MAX(IdAlarm) FROM alarms)
DECLARE @maxidAlarm int
DECLARE @temp decimal = (SELECT s.lim_inf_temp  from sensores s JOIN inserted i ON s.idSensor=i.idSensor )

-- Insert into alares from the inserted rows if temperature less than tempmin
SET IDENTITY_INSERT alarmes On
INSERT alarmes (IdAlarm, desc_alarm,date, idRecord)
    SELECT
    ROW_NUMBER() OVER (ORDER BY i.idRecord) + @current_max_idAlarm, 'Temp Error', GETDATE(), i.idRecord
    FROM
inserted AS i
    WHERE
i.Temperature < @temp

end

EINFÜGEN

insert into record values ('2014-05-26' ,'14:51:47','Sensor01','---','48.6','9.8');

Immer wenn ich versuche zu erfassen diese Art von Daten: '---'

Gibt die folgende Fehlermeldung:

Msg 8114, Level 16, State 5, Procedure Alert, Line 
Error converting data type varchar to numeric.

Ich weiß, es ist in decimal-Typ (DECLARE @temp decimal - TRIGGER), aber bewegt, um den Typ varchar auslösen nicht mehr funktioniert korrekt.

Nicht kann mir jemand helfen, diesen Fehler beheben, bitte?

Danke an Euch alle.

Warum tun Sie einfügen möchten ---? Sie erkennen, dass Sie auskommentieren?
Vielen Dank für die Antwort.Denn ich bin der Erfassung der Daten durch einen parser aus einer txt-Datei. Und manchmal ein paar Daten in diesem format ---
Können Sie mir helfen @meda ??

InformationsquelleAutor user3320956 | 2014-05-26

Schreibe einen Kommentar