靠近'的语法不正确;更换';使用MSSQL
我已通过liquibase将oracle数据库迁移到Microsoft SQL Server,但仍有一些SQL语句不起作用。这一个在oracle中看起来像这样:靠近'的语法不正确;更换';使用MSSQL,sql,sql-server,oracle,replace,liquibase,Sql,Sql Server,Oracle,Replace,Liquibase,我已通过liquibase将oracle数据库迁移到Microsoft SQL Server,但仍有一些SQL语句不起作用。这一个在oracle中看起来像这样: CREATE OR REPLACE VIEW "BP_RESULTS_VIEW" ( BP_ID, RES_NAME, RES_LONG_NAME,
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';
将其迁移到Microsoft SQL Server后,如下所示:
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
但当我想要执行它时,总是会出现以下错误:
Incorrect syntax near 'REPLACE'.
我不明白为什么,因为SQL Server中也存在REPLACE语句。它似乎也无法识别CAST命令。我使用的是Microsoft SQL Server Management Studio 17SQL Server不支持
创建或替换视图
而是第一次创建视图。然后只需使用
alterview
。这是最简单的方法。您还可以删除视图并重新创建它。SQL Server不支持创建或替换视图
而是第一次创建视图。然后只需使用alterview
。这是最简单的方法。您还可以删除视图并重新创建它。在SQL Server 2016 SP1及更高版本(包括Azure SQL数据库)中,用于等效功能。在早期的SQL Server版本中,必须先删除视图,然后创建视图
和授予权限。在SQL Server 2016 SP1及更高版本(包括Azure SQL数据库)中,用于等效功能。在早期的SQL Server版本中,必须先删除视图,然后创建视图
和授予权限。替换
在SQL Server中使用的原因不同。您可以使用CREATE VIEW
或ALTER VIEW
——您应该使用实际连接,而不是通过where子句连接。发展您在哪里发现create或replace
replace
在SQL Server中用于不同的原因。您可以使用CREATE VIEW
或ALTER VIEW
——您应该使用实际连接,而不是通过where子句连接。发展您在哪里发现create或replace
不支持创建视图?我想您的意思是“不支持创建或替换视图”。不支持创建视图?我想您的意思是“不支持创建或替换视图”。