Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更新SQL Server 2008视图_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 更新SQL Server 2008视图

Sql server 更新SQL Server 2008视图,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我正在尝试更新SQL Server 2008视图,当我运行以下脚本时,出现以下错误 IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'oas_AppVend') 错误: Msg 102, Level 15, State 1, Line 2 Incorrect syntax near ')'. 如果我像下面这样运行sript(没有If和括号),结果将显示“视图” 结果: TABLE_N

我正在尝试更新SQL Server 2008视图,当我运行以下脚本时,出现以下错误

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS 
WHERE TABLE_NAME = 'oas_AppVend')
错误:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near ')'.
如果我像下面这样运行sript(没有If和括号),结果将显示“视图”

结果:

TABLE_NAME
oas_AppVend

有什么想法吗?

这个错误仅仅是因为您编写的脚本不够。SQL引擎仍然需要知道在if之后要做什么

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS  
WHERE TABLE_NAME = 'oas_AppVend') 
BEGIN 
   /* VALID SQL STATEMENT MUST EXIST HERE */
END
注意:即使是上面的代码也会返回一个错误,直到您将一个有效的sql语句放入我注意到的块中。如果您对一个else有期望的结果,它看起来会是这样的,但是在您实际完成它之前,这不是一个有效的语句

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS  
WHERE TABLE_NAME = 'oas_AppVend') 
BEGIN 
   /* VALID SQL STATEMENT MUST EXIST HERE */
END
ELSE
BEGIN
   /* DO SOMETHING ELSE */
END

您可以发布整个SQL脚本吗?需要更多信息,如IF语句之前/之后…我是否可以将其创建为一个过程,以便用户可以运行它,或者作为程序员,我是否需要每次都进入并运行它?最后一个问题,如果基表中有记录,视图是否应该自动更新更改?再次感谢。KenYes,上面提供的代码示例可以在存储过程中使用。您可以将任何其他有效的SQL语句放入标识的块中,只要运行该过程的用户具有权限,它就可以正常工作。对于您的第二个问题,是的,视图只是一个存储的select语句……因此,表中的任何内容ew基于任何时候运行时都会反映在视图中的内容。
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS  
WHERE TABLE_NAME = 'oas_AppVend') 
BEGIN 
   /* VALID SQL STATEMENT MUST EXIST HERE */
END
ELSE
BEGIN
   /* DO SOMETHING ELSE */
END