簡體   English   中英

SQL Server存儲過程 - 轉換錯誤

[英]SQL Server stored procedure - conversion error

我的存儲過程有點問題。 它給了我這個錯誤:

將varchar值'Cluj-Napoca'轉換為數據類型int時轉換失敗。

這是我的代碼:

CREATE PROCEDURE UjVasarlas
@JID int,
@SZID int,
@Nev varchar(30),
@Cim varchar(30),
@Darab int,
@Datum varchar(30)
AS
SET NOCOUNT ON;
DECLARE @maxId int;
        SET @maxId = (SELECT MAX(VevoID) FROM Vevo);
iF EXISTS (SELECT * FROM Vevo WHERE Vevo.VevoNev = @Nev)
    begin
        INSERT INTO Vasarlas VALUES (@maxId+1, @JID, @SZID, @Darab, @Datum)
    end
    else
        INSERT INTO Vevo VALUES (@maxId+1, @Nev, @Cim, 1)
        INSERT INTO Vasarlas VALUES (@maxId+1, @JID, @SZID, @Darab, @Datum)

 GO     

 EXEC UjVasarlas 2, 2, 'Your Name', 'Your City', 2, '2013-01-22'

如果有幫助我可以告訴你它的用途但是我不想浪費時間......有人可以幫忙嗎? ......期待;)

PS:

現在還有另一個問題:

INSERT語句與FOREIGN KEY約束“FK__Vasarlas__VevoID__47E69B3D”沖突。 沖突發生在數據庫“master”,表“dbo.Vevo”,列'VevoID'中。

這兩個表看起來像這樣:

  • VasarlasVevoID, JatekID, SzallitoID, Darab, Datum
  • VevoVevoID, VevoNev, OrszagID, Cim

我的猜測是你的表架構與你的插入列不匹配,請嘗試明確指定列

INSERT INTO Vasarlas(col1, col2, col3, col4, col5) 
VALUES (@maxId+1, @JID, @SZID, @Darab, @Datum)

獲取列列表的最簡單方法是從SQL Server Management Studio中的資源管理器中拖放它們。

你有三個varchar參數,@ Nev,@ Cy和@Datum。

看來你試圖將其中一個插入整數列。 檢查Vasarlas和Vevo表或更好的陷阱開始結束塊以確定哪個插入語句導致錯誤...

順便說說; EXEC UjVasarlas 2,2,'Your Name','Your City',2,'2013-01-22'無法返回“Cluj-Napoca”字符串的錯誤,該字符串未包含在您發送的params中。

如果“Cluj-Napoca”在“你的城市”空間,那就意味着你的問題是@Cim param。 而且你只在一個地方使用它,在其他博客中; 插入Vevo VALUES(@ maxId + 1,@ Nev,@ Cell,1)

檢查表Vevo ,可能是該表的第3列(你試圖插入@Cim param)是INT not VARCHAR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM