下面的TSQL失敗:錯誤無法訪問SQL代碼
IF OBJECT_ID('FDSCorp.XLFILES') IS NOT NULL
BEGIN
DELETE FROM FDSCorp.XLFILES;
INSERT INTO FDSCorp.XLFILES
SELECT DISTINCT * FROM dbo.XLFILES;
END
ELSE
exec sp_changeobjectowner XLFILES, FDSCorp;
錯誤:
The image data type cannot be selected as DISTINCT because it is not comparable.
是XLFilES
有image
列,但在這種情況下FDSCorp.XLFILES
不存在使不同的代碼會永遠不會跑步。
該代碼是爲數據庫中的每個表生成的,並且我知道這部分代碼將永遠不會在可能由於不同問題而失敗的表上運行。
我真的不想過分複雜的代碼檢查類型,我不能使用明確的,如果這種情況永遠不會發生在真實的情況。
有什麼方法可以繞過此檢查嗎?
你可以明確**指定** INSERT INTO ...和SELECT DISTINCT ....語句中的列表列表,然後跳過'IMAGE'列.... –
不要使用已棄用的'image'類型。如果你使用'varbinary(max)',那麼你不會得到這個問題。 –
這是從Access到SQL的轉換後運行的腳本的一部分,所以我無法控制類型是什麼。此外每個表都有不同的列等,所以我不能列出它們。 – pholcroft