Ian*_*ory 7 sql-server entity-framework localdb
我的应用程序使用LocalDb实例来存储它的数据.我注意到LocalDb分配标识的方式有些怪癖(这里有更多解释)我想避免.链接的答案解释了这可以通过设置SQL Server跟踪标志来完成,并解释如何为"全脂"SQL Server执行此操作.
是否可以在LocalDb上设置跟踪标志?当我的应用程序按需启动时,可以通过连接字符串完成吗?
我有类似的问题,并相信我有解决方法...
启动Regedit并找到您的localdb注册表项。对我来说
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12E.LOCALDB\MSSQLServer\
Run Code Online (Sandbox Code Playgroud)
在此键中,创建另一个名为Parameters的键。
在Parameters键中,创建一个名为SQLArg0的字符串(REG_SZ),并将其值设置为-T272。
通过SQLLOCALDB.EXE在命令提示符中运行,并stop作为参数和实例名称传入来停止LocalDB进程。例如:
C:\> sqllocaldb stop mssqllocaldb
Run Code Online (Sandbox Code Playgroud)
然后通过连接到本地数据库来使LocalDB自动启动。
运行查询DBCC TRACESTATUS(),您应该看到存在跟踪标志272。例如:
C:\>sqlcmd -S (LocalDB)\MSSQLLocalDB -Q "DBCC TRACESTATUS();"
Run Code Online (Sandbox Code Playgroud)
为了测试这一点,我一直在使用VS2015服务器浏览器来浏览数据库。在任务管理器(sqlservr.exe)中杀死LocalDB进程,在VS2015中连接到数据库并手动添加新行会导致我的自动增量值跳跃1000。添加上述注册表黑客之后,手动终止LocalDB进程不会不会导致下一个生成的标识值跳过。
高温超导
| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |