小编Tom*_*rek的帖子

为什么不能在 SNAPSHOT 隔离的临时表上创建索引?

当我尝试在使用SNAPSHOT事务隔离时在 SQL Server 中的临时表上创建索引时,出现此错误:

事务失败,因为在快照隔离事务中不允许使用此 DDL 语句。由于元数据没有版本控制,如果在快照隔离中混合使用元数据更改可能会导致不一致。

为什么在使用快照时不允许在 SQL Server 中的临时表上创建索引

我不明白这一点,如果允许我创建临时表,为什么不允许我向它们添加索引?

sql-server snapshot-isolation temporary-tables

7
推荐指数
1
解决办法
1530
查看次数

在正在运行的事务中更改事务隔离级别

我正在研究 SQL Server 中的事务隔离级别,并试图弄清楚在事务的生命周期中隔离级别发生变化时 SQL Server 的行为。

在 SQL Server 中似乎有这样的事情是可能的:

BEGIN TRANSACTION;

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

/* (some selects/inserts/updates/deletes) */

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

/* (some selects/inserts/updates/deletes) */

COMMIT TRANSACTION;
Run Code Online (Sandbox Code Playgroud)

老实说,我想不出降低隔离级别有意义的例子,我只能想到一些场景,其中事务的一部分需要可序列化的隔离,而其他部分则不需要。我有一种感觉,将使用快照和行版本控制的隔离级别与其他类型的隔离级别混合使用效果不佳,但我找不到很多信息来支持这一点。

在实践中是否会发生单个事务在其生命周期内在多个隔离级别之间切换的情况?是否有一些注意事项和细节需要了解?

sql-server transaction isolation-level

6
推荐指数
1
解决办法
630
查看次数

在 ALLOW_SNAPSHOT_ISOLATION 为 OFF 时将 RE​​AD_COMMITTED_SNAPSHOT 设置为 ON

我尝试了 SQL Server 数据库的各种配置,最终设置READ_COMMITTED_SNAPSHOTONwhile ALLOW_SNAPSHOT_ISOLATIONis OFF

我注意到启用此功能后,许多查询的速度要快得多。我仍然使用默认READ COMMITTED隔离级别连接到数据库。

这里究竟发生了什么?我认为 when ALLOW_SNAPSHOT_ISOLATIONis OFF,设置READ_COMMITTED_SNAPSHOTON不会有任何影响......我实际上仍然没有使用快照隔离,还是我?有人可以解释一下吗?我糊涂了。

我尝试在网上研究这个主题,但是每当我看到READ_COMMITTED_SNAPSHOT有人使用它时,它总是与 一起使用ALLOW_SNAPSHOT_ISOLATION,而我没有启用它。

sql-server transaction isolation-level snapshot-isolation

5
推荐指数
1
解决办法
2285
查看次数

如何在 SQL Server 2022 中创建别名

根据https://learn.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client?view=sql-server-ver16

SQL Server Native Client(通常缩写为 SNAC)已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除。不建议在新开发中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。今后切换到适用于 SQL Server 的新 Microsoft OLE DB 驱动程序 (MSOLEDBSQL) 或最新的适用于 SQL Server 的 Microsoft ODBC 驱动程序。

我曾经使用 SQL Server 配置管理器创建别名,但从 SQL Server 2022 开始,创建别名的表单已禁用所有字段:

别名 - 新

如何在 SQL Server 2022 中创建别名,这可能吗?

alias sql-server-2022

3
推荐指数
1
解决办法
3157
查看次数