1

我安装了 SQL Server 2012 Express,并且正在从一本关于 SQL Server 管理的书中学习。我的任务是编写一个批处理文件来从表中复制数据并将其导出到 Excel 电子表格中。

我有正确的实例名称和我的用户名,但由于密码登录失败。当我进入 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 启用远程连接,但这是本地安装。

4

3 回答 3

1

使用“-E”开关使您的连接成为受信任的(Window 的身份验证)连接,那么您根本不需要用户名和密码(前提是您在计算机上有足够的权限)

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()
于 2014-01-29T22:54:59.050 回答
0

听起来您正在使用 Windows 身份验证,您可以删除 -u 和 -p。如果未提供这些,则 sqlcmd 将使用 Windows 身份验证。

于 2014-05-08T20:09:29.777 回答
0

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

于 2013-03-24T07:20:40.817 回答