2013-03-24 64 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身份驗證。

相關問題