我有一个存储过程:
DECLARE @webPortalId int = 7
DECLARE @defaultVidyoPortalId int
SELECT TOP 1
@defaultVidyoPortalId = ISNULL(psv.value, 0)
FROM
portalsetting ps
INNER JOIN
portalsettingvalue psv ON psv.portalsettingid = ps.id
AND psv.portalid = @webPortalId
WHERE
ps.name = 'default_portal_id'
ORDER BY
psv.id DESC
我有一个例外
转换varchar值' my-portal&#39>时转换失败到数据类型int
对我来说没有意义的是:实际上,select语句永远不会返回任何结果,因为没有行会返回,但是为什么SQL Server会尝试将varchar转换为int,即使select也不返回任何数据?
my-portal
是表portalsettingvalue
中的第一个行值,但如果我只运行select *
该语句将不返回任何内容。
portalsettingvalue.value
列可以为varchar(1024)
PS:这只发生在一个环境中,其他环境没有这个问题。