SQL连接不适用于SQL 2012

时间:2014-08-06 13:12:44

标签: sql sql-server sql-server-2012

我正在尝试清理一些数据而我无法理解为什么我的简单连接将在select中工作但不在更新中工作。你能快速看看,看看你是否发现了什么问题,我很难过。

选择语句:

SELECT p.Id, p.Description, r.[Media Owner], r.PublicationOwnerId
FROM [dbo].[Retail] r
INNER JOIN [dbo].[PublicationOwner] p
ON r.[Media Owner] = p.Description
AND p.Description IS NOT NULL

更新声明:

UPDATE r SET PublicationOwnerId = p.Id
FROM [dbo].[Retail] r
INNER JOIN [dbo].[PublicationOwner] p
ON r.[Media Owner] = p.Description
AND p.Description IS NOT NULL

select语句返回正确的数据,因此我希望update语句更新[dbo]。[Retail]。[PublicationOwnerId]为[dbo]。[PublicationOwner]。[Id]。但它将所有PublicationOwnerIds设置为1。

此更新语句是否有问题,考虑到select按预期工作?

1 个答案:

答案 0 :(得分:0)

arrrggh。我觉得这样的白痴,我将Id列(PublicationOwnerId)设置为位。

我真的很尴尬。对不起,伙计们,我应该散步,然后再回来。

无论如何,谢谢你的评论!


澄清Stefan的好处:

在SQL Server中,如果尝试设置位字段设置为整数,则任何高于零的值都会将该位设置为1(true)。

这是更新语句的情况,我错误地试图将位字段设置为整数值,而不理解为什么它总是设置为1(真),因为我认为它是一个整数字段。