0

我在 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 已过时并被忽略。任何帮助表示赞赏。

4

2 回答 2

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
于 2013-09-26T15:26:05.697 回答
0

标志-D不一样。-d尝试sqlcmd -d YourDatabase -Q SELECT DISTINCT Date from MMD_Scale ORDER BY Date ASC -o testresults.txt

于 2013-09-26T17:14:12.340 回答