sql-server - 如何指定我的应用程序应使用跟踪标志参数启动 SQL Server LocalDb?

标签 sql-server entity-framework localdb

我的应用程序使用 LocalDb 实例来存储其数据。我注意到 LocalDb 分配标识的方式有一个怪癖(解释更多 here ),我想避免这种情况。链接的答案解释了这可以通过设置 SQL Server 跟踪标志来完成,并解释了如何对“全脂”SQL Server 执行此操作。

是否可以在 LocalDb 上设置跟踪标志?当我的应用程序按需启动时,这可以通过连接字符串来完成吗?

最佳答案

我有类似的问题,并且相信我有解决方法......

启动 Regedit 并找到您的 localdb 注册表项。对我来说这是

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12E.LOCALDB\MSSQLServer\

在此项中创建另一个名为Parameters的项。

在Parameters键中创建一个名为SQLArg0的字符串(REG_SZ)并将其值设置为-T272

通过在命令提示符中运行 SQLLOCALDB.EXE 来停止 LocalDB 进程,并传入 stop 作为参数和实例名称。例如:

C:\> sqllocaldb stop mssqllocaldb

然后通过连接到 LocalDB 上的数据库来自动启动。

运行查询DBCC TRACESTATUS(),您应该会看到跟踪标志 272 存在。例如:

C:\>sqlcmd -S (LocalDB)\MSSQLLocalDB -Q "DBCC TRACESTATUS();"

为了测试这一点,我一直在使用 VS2015 服务器资源管理器来探索数据库。在任务管理器(sqlservr.exe)中终止 LocalDB 进程,在 VS2015 中连接到数据库并手动添加新行会导致我的自动增量值跳跃 1000。添加上述注册表 hack 后,手动终止 LocalDB 进程不会导致跳过下一个生成的标识值。

HTH

关于sql-server - 如何指定我的应用程序应使用跟踪标志参数启动 SQL Server LocalDb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043952/

相关文章:

entity-framework - 在每个单元测试之前重新创建和重新设置 LocalDb

c# - 按顺序封装和处置 SqlClient 对象

c# - 解决 SQL 事务超时的防弹方法

.net - Entity Framework 中的可空实体投影

database - 没有任何connectionString自动创建localdb?

从一个表中的特定组中选择 MIN 的 SQL 更新

sql-server - 对现有更新的 SQL Server

sql-server - Sql 类似于 RegEx

c# - 如何从异常(随机出现的 C# WPF)中获取更多信息?

c# - 实现 IAsyncEnumerable 的空 IQueryable