在SQL Server中选择时是否存在预测隐藏功能?

时间:2018-02-05 00:06:31

标签: sql-server

我有一个存储过程:

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:这只发生在一个环境中,其他环境没有这个问题。

0 个答案:

没有答案