You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL创建视图PercentPopulationVaccinated提示Select附近语法错误如何解决

问题原因排查
  • 核心语法冲突:SQL Server 规定 CREATE VIEW 语句必须是其所在执行批次的首个语句,且单个批次内不允许在视图创建逻辑后直接追加其他操作语句。你当前的代码将「创建视图」和「查询视图」两个逻辑放在同一个执行批次中,触发了语法校验错误。
  • 潜在注意项:视图定义中不允许直接使用 ORDER BY 子句,除非同时搭配 TOP、OFFSET FETCH 等限定返回行数的关键字,你当前已经注释了该语句,暂不会触发这类错误。
修复方案

在创建视图语句和查询视图语句之间添加 GO 关键字分隔执行批次即可,修正后代码如下:

Create view PercentPopulationVaccinated as 
Select dea.continent, dea.location, dea.date, dea.population, vac.new_vaccinations
,sum(convert(int,vac.new_vaccinations)) OVER (Partition by dea.location order by dea.location,
dea.date) as rolling_people_vaccinated
from PortfolioProject..['Covid vaccinations$'] vac
Join PortfolioProject..['Covid deaths$'] dea
     On dea.location=vac.location
     and dea.date=vac.date
where dea.continent is not null
--order by 2,3
GO

Select * 
from PercentPopulationVaccinated

GO 是SQL Server专用的批次分隔符,不属于T-SQL标准语法,作用是告诉数据库客户端(如SSMS)将前后代码拆分为多个独立请求发送给数据库执行,避免批次内语句规则冲突。
如果需要支持重复执行脚本,可以在最开头加语句先删除已存在的视图:

IF EXISTS (SELECT * FROM sys.views WHERE name = 'PercentPopulationVaccinated') 
DROP VIEW PercentPopulationVaccinated
GO

内容的提问来源于stack exchange,提问作者Sandhya Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:36:04