TSQL文本比较或更新查询的前4000行

TSQL文本比较或更新查询的前4000行,tsql,sql-server-2012,Tsql,Sql Server 2012,我刚刚学习了T-SQL,并且非常熟悉Access,由于leads数据库的大小,我尝试转向SQL 我知道如何选择最前面的40000行,但我不知道如何基于此更新查询中的字段。所以我尝试在Phone字段中使用一个小于,但问题是Phone number是一个文本字段,在Access中工作的SQL中不起作用。还有其他想法吗 UPDATE tblLeadsCamp SET tblLeadsCamp.Subcampaign = @NewName WHERE ((tblLeads.Phone)>'814

我刚刚学习了T-SQL,并且非常熟悉Access,由于leads数据库的大小,我尝试转向SQL

我知道如何选择最前面的40000行,但我不知道如何基于此更新查询中的字段。所以我尝试在Phone字段中使用一个小于,但问题是Phone number是一个文本字段,在Access中工作的SQL中不起作用。还有其他想法吗

UPDATE tblLeadsCamp 
SET tblLeadsCamp.Subcampaign = @NewName
WHERE ((tblLeads.Phone)>'81455152') and tblLeads.Resi = 1
From tblLeads INNER JOIN tblLeadsCamp ON tblLeads.Phone = tblLeadsCamp.Phone)

要更新前4000条记录,您只需执行以下操作

UPDATE TOP(4000) tblLeadsCamp SET Subcampaign = @NewName 更新TOP(4000)tblLeadsCamp集合子标记=@NewName 或

使用您的方法-

UPDATE tblLeadsCamp SET tblLeadsCamp.Subcampaign = @NewName From tblLeads INNER JOIN tblLeadsCamp ON tblLeads.Phone = tblLeadsCamp.Phone WHERE CAST(CAST(tblLeads.Phone AS VARCHAR(10)) AS INT) > 81455152 and tblLeads.Resi = 1 更新TbleAdscamp 设置tblLeadsCamp.subcompaign=@NewName 从tblLeads内部在tblLeads.Phone=tblLeadsCamp.Phone上加入tblLeadsCamp 其中CAST(CAST(tblLeads.Phone作为VARCHAR(10))作为INT)>81455152,tblLeads.Resi=1
当然
WHERE((tblLeads.Phone)>'81455152)
应该是
WHERE((tblLeads.Phone)>'81455152')
-这是你真正的代码输入错误吗?不,那是我简化了查询。。。它运行属性,但不更新字段。我假设SQL不会像Access那样接受大于或小于文本字段。使用Top 40000 Desc抱怨确实选择了最上面的行,然后对它们进行排序,所以我得到了错误的电话号码小于。对不起,我是在学习经验。。。