Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Tsql 关键字';截断';。视野之内_Tsql - Fatal编程技术网

Tsql 关键字';截断';。视野之内

Tsql 关键字';截断';。视野之内,tsql,Tsql,我收到错误“关键字‘truncate’附近的语法不正确”。我不确定这里的语法出了什么问题,这对我来说并不明显……可能有点愚蠢,但我需要另一双眼睛: ALTER VIEW [dbo].[vw_All_Events] AS truncate table Event Select [event_id] ,[site_id] ,[autogenerated] ,[creation_date] ,[last_update_date] from Event

我收到错误“关键字‘truncate’附近的语法不正确”。我不确定这里的语法出了什么问题,这对我来说并不明显……可能有点愚蠢,但我需要另一双眼睛:

ALTER VIEW [dbo].[vw_All_Events]
AS

truncate table Event

Select [event_id]
      ,[site_id]
      ,[autogenerated]
      ,[creation_date]
      ,[last_update_date]
from Event

GO

视图中只能有select语句。因此,“truncate”命令无效。

视图中只能有select语句。因此,“truncate”是一个无效的命令。

视图只允许在
AS
之后使用一条语句,并且必须是数据检索(返回行集)。它不能是不同的类型,包括数据定义、数据修改、过程性、声明性或任何其他类型

您可以使用存储过程或用户定义的函数来执行这些操作(但不能在函数中执行DDL和DML)

具体来说,存储过程允许控制语句流,如IF-THEN-ELSE-BEGIN-END-WHILE-RETURN。您可以使用DML来更新、删除和插入。您可以使用DDL创建和删除表和索引,添加列和约束,等等。可以返回多个行集。您可以执行动态SQL


您想实现什么?

视图只允许在
AS
之后使用一条语句,并且必须是数据检索(返回行集)。它不能是不同的类型,包括数据定义、数据修改、过程性、声明性或任何其他类型

您可以使用存储过程或用户定义的函数来执行这些操作(但不能在函数中执行DDL和DML)

具体来说,存储过程允许控制语句流,如IF-THEN-ELSE-BEGIN-END-WHILE-RETURN。您可以使用DML来更新、删除和插入。您可以使用DDL创建和删除表和索引,添加列和约束,等等。可以返回多个行集。您可以执行动态SQL


您想实现什么?

截断
不适用于视图


检查此

截断
不适用于视图


查看此

更好的方法是,使用存储过程而不是视图


您可以编写多个语句并获得输出。

更好的方法是,使用存储过程而不是视图


您可以编写多个语句并获得输出。

您想做什么?在这个上下文中,truncate没有任何意义即使这个语法有效并且可以工作,那么您的视图将永远不会显示任何数据(因为它刚刚被截断)。那么你到底想在这里做什么??似乎没有什么意义…只是尝试清除该表,因为此视图在SSIS中用作要插入回同一表的select数据。不会有任何数据要插入回。。。你把一切都清除了。我们都很困惑。你想做什么?在这个上下文中,truncate没有任何意义即使这个语法有效并且可以工作,那么您的视图将永远不会显示任何数据(因为它刚刚被截断)。那么你到底想在这里做什么??似乎没有什么意义…只是尝试清除该表,因为此视图在SSIS中用作要插入回同一表的select数据。不会有任何数据要插入回。。。你把一切都清除了。我们都很困惑。是的,我只需要让我的SSIS事务调用procs,这样我就可以清除表,然后调用我的视图(选择数据)……为什么需要只用于返回空行集的视图?是的,我只需要让我的SSIS事务调用procs,这样我就可以清除表,然后调用我的视图(选择数据)…为什么需要仅用于返回空行集的视图?