我有sqlcmd.exeSQLServer 2008和SQLServer 2012:
PS C:\> Get-Command sqlcmd.exe
Definition
----------
C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE
Run Code Online (Sandbox Code Playgroud)
通过修改$env:PATH我强制使用sqlcmd.exeSQL Server 2012:
PS C:\> $env:PATH = ($env:PATH -split ";" | Where-Object { $_ -notlike "*\Microsoft SQL Server\100\*" }) -join ";"
PS C:\> Get-Command sqlcmd.exe
Definition
----------
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE
Run Code Online (Sandbox Code Playgroud)
LocalDB的默认实例已启动并正在运行,并由当前用户拥有:
PS C:\> sqllocaldb i v11.0
Name: v11.0
Version: 11.0.2318.0
Shared name:
Owner: DOMAIN\me
Auto-create: Yes
State: Running
Last start time: 12/06/13 18:17:57
Instance pipe name: …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以更改默认位置(LocalDB).当您使用SqlLocalDB.exe默认位置创建它时
C:\Users\userId\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MyDB
Run Code Online (Sandbox Code Playgroud)
我相信这个路径用在(LocalDB)连接字符串中(由*.dbml文件创建者自动生成):
<connectionStrings>
<add name="MyApp.Properties.Settings.MyConnectionString"
connectionString="Data Source=**(LocalDB)**\MyDB;Initial Catalog=sthDB;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) 我有一个基于Visual Studio Online的解决方案.此解决方案中的所有单元测试都需要一个数据库,我试图让构建使用测试的专用localdb(通过在测试项目中添加一个light mdf文件并使用localdb连接字符串)但是它失败并出现此错误(evrything工作正常)在我的桌面上):
System.Data.SqlClient.SqlException:连接超时已过期.尝试使用登录前握手确认时超时时间已过.这可能是因为登录前握手失败或服务器无法及时响应.尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 29460; 握手= 161; ---> System.ComponentModel.Win32Exception:等待操作超时.
编辑
连接字符串是
<add name="TestDb" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=AeroBase;Integrated Security=true;AttachDBFilename=|DataDirectory|\App_Data\AeroBase.mdf" providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)
我首先使用EF6代码,存储库和工作模式单元来访问它.这是DbContext:
public class AeroDataContext : DbContext, IDbContext
{
private Guid DataContextId;
private string _name;
public string Name { get { return _name; } }
public AeroDataContext(string cnxStringName, string cnxString)
: base(cnxString)
{
this.Database.Log = delegate(String name)
{
// Debug.WriteLine(name);
};
_name = cnxStringName;
this.Configuration.LazyLoadingEnabled = false;
DataContextId = Guid.NewGuid();
Debug.WriteLine("AeroDbCreation Id = " + DataContextId.ToString());
} …Run Code Online (Sandbox Code Playgroud) 我尝试在以下位置设置MyProject\App_Data\Cos.mdf数据库的位置App.config:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Cos.mdf;Initial Catalog=Cos;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
在Program.cs我写道:
static void Main(string[] args) {
string relative = @"..\..\App_Data\Cos.mdf";
string absolute = Path.GetFullPath(relative);
AppDomain.CurrentDomain.SetData("DataDirectory", absolute);
Console.WriteLine(absolute);
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
显示的路径是(我粘贴它表明我没有犯错):

但是当我输入Package Manager Console enable-migrations更改AutomaticMigrations为true时,输入update-databaseI get error:
Cannot attach the file 'C:\Users\s8359_000\Documents\Visual Studio 2013\Projects\Projekt5 — kopia\Projekt5\bin\Debug\Cos.mdf' as database 'Cos'.
为什么.NET尝试在Debug目录中创建我的数据库?!我在StackOverflow上讨论了这个主题的15个主题,看起来每个人都只是复制了不起作用的答案.
SRUTZKY回答后编辑 是的,你说错了.在你的回答后我尝试了更多的组合,不幸的是没有工作.
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\baza.mdf;Initial Catalog=baza;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
和主要的
static void …Run Code Online (Sandbox Code Playgroud) 有没有办法让IIS可以在不使用NT SERVICE\NETWORK SERVICE用户帐户的情况下连接到LocalDB .
此帐户没有合适的权限.我正在寻找使用其他一些默认帐户,或者是否有某些方法可以在NETWORK SERVICE不更改权限的情况下使用该帐户?
我们在(localdb)\ v11.0(Vstudio 2012)上使用EF5进行代码优先迁移,到目前为止一切运行良好.
但是 - 今天我需要在几个表上创建几个索引并遇到问题.
首先我在PM做了这个:
PM> add-migration AddIdxToOutage
Scaffolding migration 'AddIdxToOutage'.
Run Code Online (Sandbox Code Playgroud)
我将scaffolded迁移中的代码修改为:
public override void Up()
{
Sql(@"CREATE NONCLUSTERED INDEX [idx_WtgId_StartDateTime_EndDateTime] ON [dbo].[Outages]
(
[WtgId] ASC,
[StartDateTime] ASC,
[EndDateTime] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]");
}
Run Code Online (Sandbox Code Playgroud)
我更新了数据库,结果如下:
PM> update-database -startupprojectname D3A.Data -force -verbose
Using StartUp project 'D3A.Data'.
Using NuGet project 'D3A.Data'.
Specify the '-Verbose' flag to view the SQL …Run Code Online (Sandbox Code Playgroud) 我正在尝试在本地复制生产环境,并且生产数据库使用链接服务器。我已经能够创建 localdb 的多个实例;是否可以在 localdb 实例之间创建链接服务器?如果没有,我还有哪些其他可用选项(理想情况下不必使用完整的 sql 实例)。
我们正在部署到MS SQL Server localdb集成测试。
我们构建了一个数据库项目,并将生成的dacpac文件复制以供 IntegrationTests 项目使用。到目前为止,我们有:
DatabaseProject.sqlproj
bin/debug/DatabaseProject.dacpac
IntegrationTests.csproj
bin/debug/DatabaseProject.dacpac
Run Code Online (Sandbox Code Playgroud)
我们在 IntegrationTests 项目中有一个程序集设置,其中创建了一个新的新数据库并将其dacpac部署到localdb. 在 TearDown 中,数据库被删除,因此我们有一个确定性的测试状态。
这是部署 的代码dacpac,它使用DacServices( Microsoft.SqlServer.Dac, System.Data.SqlLocalDb, System.Data.SqlClient):
public void CreateAndInitializeFromDacpac(
ISqlLocalDbInstance localDbInstance,
string databaseName,
string connectionString,
string dacpacPath)
{
using (var cx = localDbInstance.CreateConnection())
{
cx.Open();
using (var command = new SqlCommand(
string.Format("CREATE DATABASE {0}", databaseName), cx))
command.ExecuteNonQuery();
}
var svc = new DacServices(connectionString);
svc.Deploy(
DacPackage.Load(dacpacPath),
databaseName,
true
);
} …Run Code Online (Sandbox Code Playgroud) 我以前只有SQL版两个12 (localdb)\ProjectsV12和(localdb)\MSSQLLocalDB
这是当我有VS 2015年更新1安装,使用SSDT工具(数据库项目)一起.
我安装了Update 2,现在有:
注意MSSQLLocalDB仍然是旧版本.
然而,一位同事做了VS 2015的全新安装并且具有:
所以他们使用的是较新版本的MSSQLLocalDB,而且我的版本较旧.即使我们都是Visual Studio的Update 2.
我原本希望使用与MSSQLLocalDB无关的版本名称.问题是,如果每个人都在不同的版本上,这将无法工作,因为我有构建设置将数据库项目部署到localdb,这需要使用SqlPackage,它是特定于版本的:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe
我想了解MSSQLLocalDB的安装和更新位置和方式.我非常确定ProjectsV12/13是Visual Studio安装的一部分.
什么安装MSSQLLocalDB,以及更新它?
重复
建议的副本只是将MSSQLLocalDB描述为"SQL Server 2014 LocalDB默认实例名称".这并没有说明它作为一部分安装或更新它的内容.谢谢
SQLLocalDB 无法启动并抛出如下错误。
**C:\Windows\system32>sqllocaldb c MSSQLLocalDB**
Creation of LocalDB instance "MSSQLLocalDB" failed because of the following error:
Error occurred during LocalDB instance startup: SQL Server process failed to start.
***Note:*** Command started with Run as Administrator.
Run Code Online (Sandbox Code Playgroud)
事件查看器显示以下日志:
Windows API call WaitForMultipleObjects returned error code: 575. Windows system error message is: {Application Error}
The application was unable to start correctly (0x%lx). Click OK to close the application.
Reported at line: 3714.
Source: SQLLocalDB 15.0
Event ID: 528
Level: Error
Run Code Online (Sandbox Code Playgroud)
操作系统: Windows 11 …
localdb ×10
c# ×3
sql ×3
sql-server ×3
.net ×1
app-config ×1
azure-devops ×1
dacpac ×1
iis ×1
indexing ×1
powershell ×1
sqlps ×1
windows ×1