我在Windows 2008 R2服务器上运行SQL Express并尝试编写脚本以定期查询数据库并将结果保存到文件中。我用过:
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]”。 e.g。
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
答案 1 :(得分:0)
-D
标志与-d
不同。试试sqlcmd -d YourDatabase -Q SELECT DISTINCT Date from MMD_Scale ORDER BY Date ASC -o testresults.txt