针对附加数据库运行sql脚本?

时间:2010-01-16 22:01:54

标签: sql sql-server-express mdf

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

但我无法弄清楚如何让它发挥作用。如果我在Visual Studio中加载脚本,它只允许我连接到服务器并对数据库运行它。我无法选择不同的提供程序(Microsoft Sql Server数据库文件),因此我无法选择我的MDF。

这使我成为将脚本作为单独查询运行的唯一选择,但这不会起作用,因为它似乎不支持TSQL CREATE语句。

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

4 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:3)

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

  1. 在脚本上单击鼠标右键,然后选择连接>连接

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

  3. 点击选项按钮

  4. 点击其他连接参数标签

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

    <强> AttachDBFilename = C:\路径\至\数据库\ LocalData.mdf;数据库= LocalData;

  6. 点击连接按钮

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

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

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

答案 2 :(得分:0)

如何使用SqlCmd实用程序?

  

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

答案 3 :(得分:0)

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

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

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

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

  4. 从属性窗口中获取连接字符串.. 在“Data Source =。\ SQLEXPRESS;”

  5. 之后复制连接字符串中的所有内容
  6. 单击执行Sql按钮(Ctrl + Shift + E)

  7. 在服务器名称类型。\ SQLEXPRESS

  8. 在“其他连接参数”选项卡中,粘贴您在步骤4中复制的数据

  9. 单击“连接”,然后从文件列表中按磁盘位置选择相关的目标MDF文件。

  10. 点击连接。

  11. 刷新目标数据库