Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server “这是什么意思?”;“初始目录”;在SQL Server连接字符串中?_Sql Server_Database_Sql Server 2005_Connection String_Database Connection - Fatal编程技术网

Sql server “这是什么意思?”;“初始目录”;在SQL Server连接字符串中?

Sql server “这是什么意思?”;“初始目录”;在SQL Server连接字符串中?,sql-server,database,sql-server-2005,connection-string,database-connection,Sql Server,Database,Sql Server 2005,Connection String,Database Connection,我见过的每个SQL Server连接字符串都是这样的: Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database; Integrated Security=SSPI; 我需要初始目录设置吗?(显然不是,因为我正在使用的应用程序在没有它的情况下似乎可以工作。) 那么,这是干什么用的呢?这是连接时数据源的最新版本 为清晰起见进行了编辑: 如果SQL Server实例中有多个数据库,并且不想使用默认数据库,则

我见过的每个SQL Server连接字符串都是这样的:

Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database;
    Integrated Security=SSPI;
我需要初始目录设置吗?(显然不是,因为我正在使用的应用程序在没有它的情况下似乎可以工作。)

那么,这是干什么用的呢?

这是连接时数据源的最新版本

为清晰起见进行了编辑:


如果SQL Server实例中有多个数据库,并且不想使用默认数据库,则需要某种方法来指定要使用的数据库。

如果连接字符串中的用户名可以访问多个数据库,则必须指定要连接字符串的数据库。如果您的用户只有一个可用的数据库,那么您认为这无关紧要是正确的。但最好将其放入连接字符串中。

设置初始目录允许您设置在该连接上运行的查询默认使用的数据库。如果未为与存在多个数据库的服务器的连接设置此选项,则在许多情况下,您需要在每个查询中使用USE语句,以便显式声明要在哪个数据库上运行查询。初始目录设置是显式声明默认数据库的好方法。

第一部分是正确的。第二部分不正确。创建帐户时,将为其分配一个默认数据库,如果未指定初始目录,将使用该数据库。这通常默认为master(出于一些未知的原因)。当我说“默认”时,我的意思是当您没有用对象名限定数据库时。无论如何,我已经澄清了我的答案。我喜欢安迪的澄清,事实上他的评论很有帮助;这是否意味着,如果我用对象名限定每个数据库,那么初始目录就不那么重要/不相关了?嗯,我刚刚发现我的应用程序将我创建的所有表都放在主目录中。哎呀。我可能刚刚知道我问题的答案,不完全正确。登录名可能没有默认数据库的权限。因此,您需要更改连接上的数据库上下文如果您指定使用-ConnectionStringName参数,这是实体框架所必需的,因此肯定是良好的做法,但有时也是必需的!你能把这个答案改写一下吗?读了两遍,我还是不明白。