我试图通过使用 SQLCMD 的批处理文件触发 SP 来使存储过程工作,并使用用户定义的变量。我已经可以确认我的存储过程有效,因为我使用硬编码变量以这种方式对其进行了测试。作为参考,这是批处理文件代码:
SET /P Param1 = Enter job number here:
SET /P Param2 = Enter number for current status here:
sqlcmd -S DevTest -d test_database -Q "EXEC dbo.JStatUpd @jobNum = Param1, @stat = Param2"
PAUSE
(编辑:为了便于参考,我保留了 sqlcmd 行。)
我的困难在于使用用户定义的变量。具体来说,我在转换用户定义的变量时遇到了问题——我的两个变量都应该是整数。我认识到所有SET
变量都会自动以 ; 形式出现nvarchar
,但我无法找到将它们转换为int
; 每次尝试使用 CAST 或 CONVERT 时都会出错。
我的问题是:是否可以在 SQLCMD 内联查询中使用 CAST 或 CONVERT 转换变量?或者当我应该使用不同的方法时,我是否会以错误的方式来解决这个问题?