2013-03-24 61 views
1

我安装了SQL Server 2012 Express,并且正在从一本关于SQL Server管理的书中学习。我的任务是编写一个批处理文件来从表中复制数据并将其导出到Excel电子表格中。如何使用SQLCMD登录到SQL Server Express,用户没有设置密码

我已经得到实例名称和我的用户名,但由于密码登录失败。当我输入Management Studio并单击连接时,我看到我的用户名,但密码为空,我以这种方式成功连接到我的数据库。如何为我的帐户设置密码?我认为我无法使用SQLCMD登录,因为我没有这个设置。我的用户名与我的Windows用户名相同,使用登录到Windows的密码不起作用。

SQLCMD -S CRAIG-PC\SQLExpress -U CRAIG-PC\Craig -P ********* 
     -d AdventureWorks 
     -Q "SELECT * FROM Sales.SalesOrderDetail" -o C:\ExportDir\export.csv 

这是我试图连接和查询数据库的批处理文件中的命令。如果我拿出-P ******* SQL Server正在等待密码。如果我不使用用户名或密码连接被拒绝。

使用tcp启用远程连接,但这是本地安装。

回答

0

检查数据库的名称,即“AdventureWorks的”应为“AdventureWorks2012”

1

使用“-E”开关,让您连接的信任(Windows认证)之一,那么你并不需要用户在所有的名称和密码(前提是你有你的机器上有足够的权限)

http://technet.microsoft.com/en-us/library/ms162773.aspx

注意,在下面我Python代码,我没有实现用户名或密码。

希望帮助

_query = "CREATE DATABASE %s ON (FILENAME = '%s'), (FILENAME = '%s') FOR ATTACH;" %(_database, mdffilepath, logfilepath) 

    command_process = SubP.Popen(['sqlcmd','-b', '-E', 
           '-S', _server, 
           '-d', 'master', 
           '-q', _query], 
          stdin = SubP.PIPE, 
          stdout = SubP.PIPE, 
          stderr = SubP.STDOUT, 
          shell = True) 

    _stdOut, _stdError = command_process.communicate() 
0

听起来像你正在使用Windows身份验证,您可以删除-u和-p。当那些不提供sqlcmd将使用Windows身份验证。

相关问题