2

我有一个 MDF 附加到 Sql Server 2008 Express 的实例,我需要针对它运行一些 sql 脚本来生成表、索引等。

但我不知道如何让它发挥作用。如果我在 Visual Studio 中加载脚本,它只允许我连接到服务器并针对数据库运行它。我不能选择不同的提供者(Microsoft Sql Server 数据库文件),所以我不能选择我的 MDF。

这让我只能选择将脚本作为单个查询运行,但这不起作用,因为它似乎不支持 TSQL CREATE 语句。

如何针对附加的数据库运行我的 sql 脚本?

4

4 回答 4

3

我遇到了同样的问题,这对我有用。

  1. 右键单击脚本并选择连接 > 连接

  2. 应该已经为本地 SQLEXPRESS 实例设置了服务器名称和身份验证。

  3. 单击选项按钮

  4. 单击附加连接参数选项卡

  5. 使用以下指导粘贴数据库文件的路径:

    AttachDBFilename=C:\Path\To\Database\LocalData.mdf;database=LocalData;

  6. 单击连接按钮

如果您仍然无法连接,可能是因为已经有一个打开的连接。检查服务器资源管理器,如果连接已打开,请右键单击并选择关闭连接。

只要 SQL 脚本保持连接,此过程还将创建持久连接。您将要关闭脚本或选择右键单击 > 连接 > 断开连接。

更多信息可以在这个问题上找到: EF4 Generate Database

于 2011-01-16T14:31:23.027 回答
3

我假设您的意思是您在 Visual Studio 中有一个本地 MDF 文件(如 App_Data 文件夹)?

您可以通过连接命名管道来使用 SQL Management Studio。

首先,使用他们讨厌的查询工具在附加数据库上的 Visual Studio 中打开一个新查询。在属性窗口中的 ServerName 下,以“your-PC-name\mini-guid”的格式保存该迷你 guid。像这样使用 Management Studio 进行连接:

\\.\pipe\mini-guid-here\tsql\query

例如,

\\.\pipe\7789925E-DCAA-4A\tsql\query

您应该会看到数据库下列出的文件名。

于 2010-10-24T20:13:39.773 回答
0

嗯,我在尝试将 ASPNETDB 的内容导入到不同的 MDF 时遇到了同样的问题,我是这样做的:

  1. 在服务器资源管理器中右键单击 ASPNETDB.mdf 并发布到 .sql 文件。

  2. 使用文件打开 .sql 文件 - 打开。(未连接)将出现在名称中。

  3. 右键单击附加的目标数据库并显示属性(TargetDatabase.MDF)

  4. 从属性窗口中获取连接字符串。在“Data Source=.\SQLEXPRESS;”之后复制连接字符串中的所有内容

  5. 单击执行 Sql 按钮 (Ctrl + Shift + E)

  6. 在服务器名称中键入 .\SQLEXPRESS

  7. 在 Additional Connection paramaters 选项卡中,粘贴您在步骤 4 中复制的数据

  8. 单击连接并从文件列表中按磁盘位置选择相关的目标 MDF 文件。

  9. 单击连接。

  10. 刷新目标数据库

于 2012-12-09T14:59:49.977 回答
0

使用SqlCmd实用程序怎么样?

sqlcmd 实用程序允许您在命令提示符下、在 SQLCMD 模式下的查询编辑器中、在 Windows 脚本文件中或在 SQL Server 的操作系统 (Cmd.exe) 作业步骤中输入 Transact-SQL 语句、系统过程和脚本文件代理工作。此实用程序使用 OLE DB 执行 Transact-SQL 批处理。

于 2010-01-16T22:07:12.557 回答