2013-09-26 99 views
0

我在Windows 2008 R2服務器上運行SQL Express並試圖編寫腳本來定期查詢數據庫並將結果保存到文件。我已經使用:SQL查詢結果到文件腳本

sqlcmd -Q SELECT DISTINCT Date from MMD_Scale ORDER BY Date ASC -o testresults.txt 

bcp "select distinct Date from MMD_Scale ORDER BY Date ASC" queryout testresults.txt -c -T 

的問題是,兩次談到回話說表MMD_Scale不能得到解決。我已經在服務器管理工​​作室中驗證了這個查詢。還有一些在線消息來源表示用-D指定數據庫,但是當我添加時它說-D已經過時並且被忽略。任何幫助表示讚賞。

+0

您可以交互式運行該查詢嗎?如果是這樣,您可能必須使用服務器,模式和/或所有者信息來限定表名。 –

回答

4

問題是,當sqlcmd或bcp連接時,它們將連接到您的默認數據庫。在這種情況下,它似乎不是您的表所在的數據庫。

嘗試在查詢中放置「USE [database_name]」。例如

sqlcmd -Q "USE MyDatabase; SELECT DISTINCT Date from MMD_Scale ORDER BY Date ASC" -o testresults.txt 

或完全限定表名:

sqlcmd -Q "SELECT DISTINCT Date from MyDatabase.dbo.MMD_Scale ORDER BY Date ASC" -o testresults.txt 
0

-D標誌是不一樣的-d。請嘗試sqlcmd -d YourDatabase -Q SELECT DISTINCT Date from MMD_Scale ORDER BY Date ASC -o testresults.txt