我有一个SQL Server代理作业,该作业偶尔会失败,并向int抛出转换错误varchar。
最疯狂的部分是在抛出错误后,我运行了相同的代码,它运行正常。
然后重新运行该作业即可正常运行。但是,几天后,这种情况再次发生(该作业安排为每天运行)。请,有人可以帮助我了解为什么会发生这种情况以及如何解决?
我正在使用SQL Server 2017数据类型:Col1 = char(6),Col2 = varchar(25),Col3 = char(15),col4 = char(6),lev1 = char(6)
SELECT
col1, col2,
REPLACE(col3,'_','') AS col3
FROM
TableName
WHERE
col4 IN (SELECT DISTINCT lev1
FROM viewName WITH (NOLOCK))
UNION ALL
SELECT
0, 'Unassigned', 0
col1
和col3
被定义为字符数据类型,但是在并集的第二选择中,您具有硬编码的整数。请尝试制作这些字符串。
SELECT
col1, col2,
REPLACE(col3,'_','') AS col3
FROM
TableName
WHERE
col4 IN (SELECT DISTINCT lev1
FROM viewName WITH (NOLOCK))
UNION ALL
SELECT
'0', 'Unassigned', '0'