我正在尝试清理一些数据而我无法理解为什么我的简单连接将在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按预期工作?
答案 0 :(得分:0)
arrrggh。我觉得这样的白痴,我将Id列(PublicationOwnerId)设置为位。
我真的很尴尬。对不起,伙计们,我应该散步,然后再回来。
无论如何,谢谢你的评论!澄清Stefan的好处:
在SQL Server中,如果尝试设置位字段设置为整数,则任何高于零的值都会将该位设置为1(true)。
这是更新语句的情况,我错误地试图将位字段设置为整数值,而不理解为什么它总是设置为1(真),因为我认为它是一个整数字段。