3
我得到一個錯誤與查詢得到的數據int列...該錯誤消息:消息248,級別16,狀態1,行: varchar值的轉換溢出int列... 我無法解決這個問題,所以如果任何人可以幫助我,在此先感謝,這裏是我的SQL:將varchar值的轉換溢出SQL Server 2012中
這發生在我插入3個新的聯接查詢時,我讓他們大膽,否則它完美...
SELECT DISTINCT
ACR_ART_ID, DES_TEXTS.TEX_TEXT AS CRITERIA_DES_TEXT,
COALESCE(DES_TEXTS2.TEX_TEXT, ACR_VALUE) AS CRITERIA_VALUE_TEXT,
(DES_TEXTS.TEX_TEXT + ': ' + COALESCE(DES_TEXTS2.TEX_TEXT, ACR_VALUE)) AS CEL_OPIS
FROM
Inventory.dbo.ARTICLE_CRITERIA
LEFT JOIN
Inventory.dbo.DESIGNATIONS AS DESIGNATIONS2 ON DESIGNATIONS2.DES_ID = ACR_KV_DES_ID
LEFT JOIN
Inventory.dbo.DES_TEXTS AS DES_TEXTS2 ON DES_TEXTS2.TEX_ID = DESIGNATIONS2.DES_TEX_ID
LEFT JOIN
Inventory.dbo.CRITERIA ON CRI_ID = ACR_CRI_ID
LEFT JOIN
Inventory.dbo.DESIGNATIONS ON DESIGNATIONS.DES_ID = CRI_DES_ID
LEFT JOIN
Inventory.dbo.DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID
INNER JOIN
Inventory.dbo.ART_LOOKUP al ON ARTICLE_CRITERIA.ACR_ART_ID = al.ARL_SEARCH_NUMBER
AND al.ARL_KIND in (1,3)
INNER JOIN
Inventory.dbo.ARTICLES a ON al.ARL_ART_ID = a.ART_ID and (a.ART_SUP_ID=21 or a.ART_SUP_ID=11091)
INNER JOIN
Inventory.dbo.SUPPLIERS ON SUPPLIERS.SUP_ID = ART_SUP_ID**
WHERE
(DESIGNATIONS.DES_LNG_ID IS NULL OR DESIGNATIONS.DES_LNG_ID = 25)
AND (DESIGNATIONS2.DES_LNG_ID IS NULL OR DESIGNATIONS2.DES_LNG_ID = 25);
ü可以查身份證的最大值在表 – Azar
查詢不出來的大膽的一部分,但在看編輯我認爲這應該是最後三個連接。你可以一次添加一個,讓人們知道哪一個使查詢失敗,然後檢查那裏的varchar字段,這可能是int的情況(查看它的值是否明顯超出範圍)。然後可能使用不同類型的顯式強制轉換來使查詢工作。 – mc110
聽起來好像至少有一個連接將'varchar' col連接到'int' col。 'varchar' col被隱式轉換爲'int'並溢出(即大於2,147,483,647)。爲了解決這個問題,試試將這些列轉換爲'bigint'。將設計重構爲沒有商店整數作爲字符串也是值得的。 –