Fehler beim konvertieren von Datentyp nvarchar int
Ich bin immer der Fehler
Fehler beim konvertieren von Datentyp nvarchar int
Code:
ALTER procedure [dbo].[sp_rcdoc]
@regno int,
@appname varchar(50),
@DOI datetime,
@COV varchar(50),
@validtill date,
@imgloc varchar(500),
@ImagNo char(20),
@Purposecode varchar(50),
@FLAG varchar(3)
AS BEGIN
IF NOT EXISTS(SELECT regno FROM tblRCDocuments WHERE regno = @regno)
BEGIN
INSERT INTO tblRCDocuments(regno, appname, DOI, COV, validtill, imgloc, ImagNo, Purposecode, FLAG)
VALUES(@regno, @appname, @DOI, @COV, @validtill, @imgloc, @ImagNo, @Purposecode, @FLAG)
END
Poste bitte die Struktur der tblRCDocuments
Sie übergeben die parameter für regno "string" - Datentyp in denen die Fehler, die Sie erwähnen. Übergeben Sie den Typ int-Wert für regno.
OK, also nur debug - welche Werte sind Ihnen vorbei in die gespeicherte Prozedur?? Was ist, wenn Sie anrufen, dass
Sie übergeben die parameter für regno "string" - Datentyp in denen die Fehler, die Sie erwähnen. Übergeben Sie den Typ int-Wert für regno.
OK, also nur debug - welche Werte sind Ihnen vorbei in die gespeicherte Prozedur?? Was ist, wenn Sie anrufen, dass
INSERT
- Anweisung manuell in SQL Server Mgmt Studio, mit diesen Parametern??InformationsquelleAutor chandu | 2012-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aussieht regno ist ein nvarchar-Datentyp in der Tabelle und Sie haben ein int übergeben, über die Sie sich mit Ihren Verfahren, verwenden Sie entweder eine cast-und convert - @regno nvarchar oder ändern Sie die regno Datentyp in einen integer in der Tabelle.
Dann in Ihre SELECT -, INSERT-und WHERE-Klauseln verwenden @regnocast anstatt @regno
Auch: ich würde empfehlen, immer die Angabe eines expliziten Länge, wenn Sie eine Besetzung. Standardmäßig, wenn Sie nicht etwas angeben - es werden 30 Zeichen. Wenn ' s Recht ist - toll - aber es ist klarer, wenn man das so sagen:
CAST(@regno AS NVARCHAR(20))
oder was auch immer Sie brauchen...InformationsquelleAutor Darren