sqlcmd 实用程序返回“找不到存储过程”

Sor*_*rty 1 sql-server stored-procedures

我正在尝试使用此命令行实用程序执行存储过程:

sqlcmd -m 1 -S inxcert -U user1 -P u8er1 -i "D:\ESP\RunSQL.sql" -h -1 -o "D:\ESP\testoutput.txt"
Run Code Online (Sandbox Code Playgroud)

以下是我在 RunSQL.sql 中编写的内容:

exec spc.load_tables
Run Code Online (Sandbox Code Playgroud)

尽管数据库中存在存储过程,但凭据正确且 SQL Server 在从 SSMS 运行时运行良好,但在输出文件中出现以下错误:

消息 2812,级别 16,状态 62,服务器 I0160SQL03\I0160SQL03,第 1 行
找不到存储过程“spc.mjr_vs_load_tables”。

请帮助我了解如何解决错误。

Chr*_*ord 5

看起来它是针对默认数据库(可能master)执行的,所以没有找到你的程序。

尝试添加:

USE [DBNAME]
Run Code Online (Sandbox Code Playgroud)

RunSQL.sql,或指定:

-d DBNAME
Run Code Online (Sandbox Code Playgroud)

到你的sqlcmd参数。