![](/img/trans.png)
[英]Data type conversion error in stored procedure in SQL Server 2008
[英]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'中。
這兩個表看起來像這樣:
Vasarlas
( VevoID, JatekID, SzallitoID, Darab, Datum
) Vevo
( VevoID, 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.