MS SQL 浏览量交易

MS SQL Transactions in Views

是否可以在视图中创建交易?例如:

CREATE View NewView
AS
 BEGIN TRANSACTION
  SELECT * FROM TableA
 COMMIT
GO

如果您还记得视图是只读操作而事务是针对 CUD 操作的,那应该可以回答您的问题。

如果您试图避免阻止或获取不正确的数据,请使用数据库引擎中可用的不同提示来获取您需要的正确数据。

不,不可能在视图中使用事务,因为视图用于从一个或多个表返回行,它们不能对您的表进行更改,因此不需要事务。

您当然可以将 SELECT 查询放入事务中:

BEGIN TRANSACTION
  SELECT * FROM NewView
COMMIT

但这完全没有必要。 在这里您可以找到一些关于什么是交易以及何时使用它们的解释:

https://www.mssqltips.com/sqlservertutorial/3304/what-is-a-transaction/

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-ver15

https://www.c-sharpcorner.com/UploadFile/84c85b/understanding-transactions-in-sql-server/