2017-07-03 59 views
0
declare @qry nvarchar(100) 
declare @Id int 
declare @pth varchar(100) 
set @Id=4 
set @pth='abc' 
set @qry='insert into pic_data(o_id,path) values('[email protected]+','[email protected]+')' 
EXEC SP_EXECUTESQL @qry 

我試圖做到這一點,但錯誤建立一個動態查詢,以將數據插入到表

轉換爲varchar值「插入 pic_data(o_id,路徑)值時,

轉換失敗(」數據類型爲int。‘從那以後,我投的 ID爲varchar然後又來到了錯誤’無效列名‘ABC’。

回答

0

你缺少的報價爲VARCHAR ..

declare @qry nvarchar(100) 
    declare @Id int 
    declare @pth varchar(100) 
    set @Id=4 
    set @pth='abc' 
    set @qry='insert into pic_data(o_id,path) values('+cast(@Id as varchar)+','''[email protected]+''')' 
    EXEC SP_EXECUTESQL @qry 
+0

感謝石咀沙棘,現在可以正常工作。 – Dosti

+0

嗨,但爲什麼這個相同的東西不起作用? – Dosti

+0

我在一個函數中粘貼相同的代碼,它不工作... – Dosti

0

試試這個

DECLARE @QRY NVARCHAR(100) 
DECLARE @ID INT 
DECLARE @PTH VARCHAR(100) 
set @Id=4 
set @pth='abc' 


SET @qry='INSERT INTO PIC_DATA(O_ID,PATH) VALUES('+CAST(@Id AS VARCHAR(10))+','+''''[email protected]+''''+')' 
Print @qry 
EXEC SP_EXECUTESQL @qry 
相關問題