Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
655 views
in Technique[技术] by (71.8m points)

entity framework - How can I specify that my app should start SQL Server LocalDb with a trace flag parameter?

My application uses a LocalDb instance to store it's data. I've noticed a quirk in the way that LocalDb has allocated identifies (explained more here) which I'd like to avoid. The linked answer explains that this can be done by setting an SQL Server trace flag, and explains how to do this for "full fat" SQL Server.

Is it possible to set a trace flag on LocalDb? As my application starts it on demand, could this be done through the connection string?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I have a similar problem and believe I have a workaround...

Launch Regedit and find your localdb registry key. For me this was

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL12E.LOCALDBMSSQLServer

Within this key create another key named Parameters.

Within the Parameters key create a string (REG_SZ) named SQLArg0 and set its value to -T272.

Stop the LocalDB process by running SQLLOCALDB.EXE in a command prompt, passing in stop as a parameter and the name of the instance. For example:

C:> sqllocaldb stop mssqllocaldb

And then cause LocalDB to auto start by connecting to a database on it.

Run the query DBCC TRACESTATUS() and you should see that the trace flag 272 is present. For example:

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

To test this I've been using VS2015 server explorer to explore the database. Killing the LocalDB process in Task Manager (sqlservr.exe), connecting to the database in VS2015 and adding a new row manually causes my auto-increment value to jump by 1000. After adding the registry hack described above, manually terminating the LocalDB process doesn't cause the next generated identity value to skip.

HTH


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...