首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用MSSQL在“替换”附近的不正确语法

使用MSSQL在“替换”附近的不正确语法
EN

Stack Overflow用户
提问于 2018-07-09 10:28:34
回答 2查看 3.1K关注 0票数 1

我已经通过清算库将oracle数据库迁移到Microsoft,但仍然有一些SQL语句无法工作。这个在甲骨文里是这样的:

代码语言:javascript
运行
复制
CREATE OR REPLACE VIEW "BP_RESULTS_VIEW" (
BP_ID,                                     
RES_NAME,                                     
RES_LONG_NAME,                                     
MEDIAN,                                    
LOW_HINGE,                                 
HIGH_HINGE,                                
H_SPREAD,                                  
INNER_FENCE_LOW,                           
INNER_FENCE_HIGH,
OUTER_FENCE_LOW,
OUTER_FENCE_HIGH,
LOW_NOTCH,
HIGH_NOTCH,
LOW_ADJACENT_VALUE,
HIGH_ADJACENT_VALUE)
  AS 
SELECT 
r.BP_ID,                                     
rv.RES_NAME,                                     
rv.RES_LONG_NAME,                                     
r.MEDIAN,                                    
r.LOW_HINGE,                                 
r.HIGH_HINGE,                                
r.H_SPREAD,                                  
r.INNER_FENCE_LOW,                           
r.INNER_FENCE_HIGH,
r.OUTER_FENCE_LOW,
r.OUTER_FENCE_HIGH,
r.LOW_NOTCH,
r.HIGH_NOTCH,
r.LOW_ADJACENT_VALUE,
r.HIGH_ADJACENT_VALUE
FROM 
bp_results r, 
results_view_display rv 
WHERE 
CAST (rv.value AS INT) = r.bp_id AND 
rv.type = 'BOX';

将其迁移到后,如下所示:

代码语言:javascript
运行
复制
CREATE OR REPLACE FORCE VIEW BP_RESULTS_VIEW (BP_ID, RES_NAME, RES_LONG_NAME, MEDIAN,
LOW_HINGE, HIGH_HINGE, H_SPREAD, INNER_FENCE_LOW, INNER_FENCE_HIGH,
OUTER_FENCE_LOW, OUTER_FENCE_HIGH, LOW_NOTCH, HIGH_NOTCH, 
LOW_ADJACENT_VALUE, HIGH_ADJACENT_VALUE) AS SELECT 
r.BP_ID,                                     
rv.RES_NAME,                                     
rv.RES_LONG_NAME,                                     
r.MEDIAN,                                    
r.LOW_HINGE,                                 
r.HIGH_HINGE,                                
r.H_SPREAD,                                  
r.INNER_FENCE_LOW,                           
r.INNER_FENCE_HIGH,
r.OUTER_FENCE_LOW,
r.OUTER_FENCE_HIGH,
r.LOW_NOTCH,
r.HIGH_NOTCH,
r.LOW_ADJACENT_VALUE,
r.HIGH_ADJACENT_VALUE
FROM 
bp_results r, 
results_view_display rv 
WHERE 
CAST (rv.value AS INT) = r.bp_id AND 
rv.type = 'BOX'
GO

但是,当我想总是执行它时,就会发生这样的错误:

代码语言:javascript
运行
复制
Incorrect syntax near 'REPLACE'.

我不明白为什么,因为替换语句也存在于Server中。它似乎也不识别CAST命令。我正在使用17

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-09 11:15:55

在Server 2016 SP1及更高版本(包括Azure SQL数据库)中,使用CREATE OR ALTER VIEW作为等效功能。在早期的Server版本中,必须首先删除视图,然后删除CREATE VIEWGRANT权限。

票数 4
EN

Stack Overflow用户

发布于 2018-07-09 10:34:47

Server不支持CREATE OR REPLACE VIEW

相反,第一次创建视图。然后只需使用ALTER VIEW。这是最简单的方法。您也可以删除视图并重新创建它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51243374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档