【发布时间】:2011-04-28 15:33:42
【问题描述】:
我必须在两个数据库之间(在同一台服务器上)同步数据,并使用存储过程来实现这一点。
数据库 A 的 id 是 int,数据库 B 的 id 是 char(25) 并采用以下形式:Item。例如,如果 A.Id 为 42,则 B.Id 为 Item42
在查询加入两个数据库时,会发生最奇怪的行为:
SELECT A.Id, B.id
FROM A.dbo.table as A
LEFT OUTER JOIN B.dbo.table as B on (B.id like 'Item42')
按预期工作,但是
DECLARE @id nvarchar;
SET @id = '42';
SELECT A.Id, B.id
FROM A.dbo.table as A
LEFT OUTER JOIN B.dbo.table as B on (B.id like 'Item' + @id)
在 B.Id 上返回 null。
为什么会这样?
【问题讨论】:
-
此查询是否有效:SELECT A.Id, B.id FROM A.dbo.table as A LEFT OUTER JOIN B.dbo.table as B on (B.id like 'Item' + 42 ) ?
标签: sql sql-server