我有一个附加到Sql Server 2008 Express实例的MDF,我需要运行一些sql脚本来生成表,索引等。
但我无法弄清楚如何让它发挥作用。如果我在Visual Studio中加载脚本,它只允许我连接到服务器并对数据库运行它。我无法选择不同的提供程序(Microsoft Sql Server数据库文件),因此我无法选择我的MDF。
这使我成为将脚本作为单独查询运行的唯一选择,但这不会起作用,因为它似乎不支持TSQL CREATE语句。
如何针对附加数据库运行sql脚本?
答案 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)
我遇到了同样的问题,这对我有用。
在脚本上单击鼠标右键,然后选择连接>连接
应已为本地SQLEXPRESS实例设置服务器名称和身份验证。
点击选项按钮
点击其他连接参数标签
使用以下指南粘贴到数据库文件的路径中:
<强> AttachDBFilename = C:\路径\至\数据库\ LocalData.mdf;数据库= LocalData; 强>
点击连接按钮
如果您仍然无法连接,可能是因为已经有一个打开的连接。检查服务器资源管理器,如果连接已打开,请右键单击并选择“关闭连接”。
只要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时遇到了同样的问题,我是怎么做到的:
右键单击服务器资源管理器中的ASPNETDB.mdf并发布到.sql文件。
使用file打开.sql文件 - 打开。 (未连接)将出现在名称中。
右键单击附加的目标数据库并显示属性(TargetDatabase.MDF)
从属性窗口中获取连接字符串.. 在“Data Source =。\ SQLEXPRESS;”
单击执行Sql按钮(Ctrl + Shift + E)
在服务器名称类型。\ SQLEXPRESS
在“其他连接参数”选项卡中,粘贴您在步骤4中复制的数据
单击“连接”,然后从文件列表中按磁盘位置选择相关的目标MDF文件。
点击连接。
刷新目标数据库