下面的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