2016-08-04 50 views
0

我有一個存儲過程,它創建一個xml文件。當我運行它,我得到一個錯誤轉換爲varchar值「這裏一些文字」時存儲過程中的錯誤,但手動運行時沒有錯誤

轉換失敗爲int

如果我把相同的代碼在查詢窗口在SSMS並執行,它工作正常 - 沒有錯誤。

有人可以告訴我爲什麼會發生這種情況?這個過程足夠長,可以在這裏發佈,它主要是一個有很多聯合和聯接的巨大選擇。

謝謝!

+0

好像你的字符串不是有效號碼 – lordkain

+0

的確如此,事實並非如此。但爲什麼在手動運行時不會拋出錯誤? – user6678202

+0

錯誤信息非常清楚。你顯然使用一個字符串,並把它看作一個數字。這很可能是一種隱含的轉換。也許如果你能分享這個程序,至少我們可以提供幫助。現在,任何人都無法提供幫助。 –

回答

0

連接之一列中的某處將varchar與整數進行比較,並且至少有一個varchar值不是整數。

所以請嘗試以下測試:

select * 
    from table 
    where myCol NOT LIKE '%[^0-9]%' 

也許

select * 
    from table 
    where CONVERT (bigint, myCol) NOT BETWEEN -2147483648 AND 2147483647 

撼樹,看看脫落。