【问题标题】:Why LocalDb needs user profile to be loaded?为什么 LocalDb 需要加载用户配置文件?
【发布时间】:2014-03-14 14:43:42
【问题描述】:

我正在使用 IIS 中的 LocalDb。有几个说明如何做到这一点,例如https://stackoverflow.com/a/13768812/121968

LocalDb 需要the user profileother specific requirements 的哪些功能? (例如,可以调整 Local LocalDb 以不调用 SHGetKnownFolderPath?)

【问题讨论】:

    标签: sql-server iis localdb


    【解决方案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 存储实例文件的位置。详情在这里 - stackoverflow.com/questions/23150238/…。不过,这仍然是一个小技巧。
    • @DanielSmith 你看了我的回答了吗?我从字面上说“我不知道让 LocalDB 将其实例放在其他地方 [比 %USERPROFILE%\...] 的意思”。 IE。我在描述中专门使用了 %USERPROFILE% 。从你的措辞看来你是在纠正我说的完全一样。
    • @facetus,根本没有纠正你。只是说在技术上可以改变 LocalDB 存储其实例的位置 - 诚然以一种 hacky 方式。这个想法是可以为单个进程而不是机器范围更改给定的环境变量。我使用此行为更改当前正在运行的进程的 %USERPROFILE% 以更改 LocalDB 文件的存储位置。这是用于在构建服务器上运行的自动化系统测试,我们需要将临时文件存储在不同的驱动器中。我发现这种方法非常适合这个目的。干杯。
    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多