为啥 LocalDb 需要加载用户配置文件?
Posted
技术标签:
【中文标题】为啥 LocalDb 需要加载用户配置文件?【英文标题】:Why LocalDb needs user profile to be loaded?为什么 LocalDb 需要加载用户配置文件? 【发布时间】:2014-03-14 14:43:42 【问题描述】:我正在使用 IIS 中的 LocalDb。有几个说明如何做到这一点,例如https://***.com/a/13768812/121968。
LocalDb 需要the user profile 和other specific requirements 的哪些功能?
(例如,可以调整 Local LocalDb 以不调用 SHGetKnownFolderPath
?)
【问题讨论】:
【参考方案1】:LocalDB 需要用户配置文件,因为它将实例存储在“%USERPROFILE%\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances”中。通常所有指南都会告诉您连接到 (localdb)\v11。什么是“v11”?它是由文件夹“%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\v11”表示的实例的名称。
所以实际上 LocalDB 数据库不仅仅是一个文件,它也是存储在实例文件夹中的一堆文件。你可以玩它。例如
SqlLocalDB.exe create LocalDBIsAHoax
SqlLocalDB.exe start LocalDBIsAHoax
sqlcmd -S (localdb)\LocalDBIsAHoax
1> create database MySuperDuperDB
2> go
1> :exit
dir "%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBIsAHoax"
我不知道如何让 LocalDB 将其实例放在其他地方。
【讨论】:
因此,LocalDb 不是 SQLite 的替代品。 这是一个非常糟糕的选择 :(。当我一开始偶然发现 LocalDB 时,我非常乐观,我花了很多时间来弄清楚它到底是什么。正如我的俄罗斯朋友所说:它是一门快速适应射击麻雀小任务的大炮。由于特殊的设计,它仍然有一个巨大的铁炮架,至少需要10公斤的TNT有效载荷,建议在荒凉的地方射击麻雀群。一次最少 1000 只鸟。 您实际上可以通过更改 %USERPROFILE% 指向的位置来更改 SqlLocalDB 存储实例文件的位置。详情在这里 - ***.com/questions/23150238/…。不过,这仍然是一个小技巧。 @DanielSmith 你看了我的回答了吗?我从字面上说“我不知道让 LocalDB 将其实例放在其他地方 [比 %USERPROFILE%\...] 的意思”。 IE。我在描述中专门使用了 %USERPROFILE% 。从你的措辞看来你是在纠正我说的完全一样。 @facetus,根本没有纠正你。只是说在技术上可以改变 LocalDB 存储其实例的位置 - 诚然以一种 hacky 方式。这个想法是可以为单个进程而不是机器范围更改给定的环境变量。我使用此行为更改当前正在运行的进程的 %USERPROFILE% 以更改 LocalDB 文件的存储位置。这是用于在构建服务器上运行的自动化系统测试,我们需要将临时文件存储在不同的驱动器中。我发现这种方法非常适合这个目的。干杯。以上是关于为啥 LocalDb 需要加载用户配置文件?的主要内容,如果未能解决你的问题,请参考以下文章