我的应用程序使用 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/