Tsql 关键字';截断';。视野之内
我收到错误“关键字‘truncate’附近的语法不正确”。我不确定这里的语法出了什么问题,这对我来说并不明显……可能有点愚蠢,但我需要另一双眼睛: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
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,这样我就可以清除表,然后调用我的视图(选择数据)…为什么需要仅用于返回空行集的视图?