我尝试使用.sql
模式在存储过程中调用sqlcmd
文件。
要求是将.sql
文件作为参数值传递给我能够实现的cmd
脚本,这里的代码工作正常:
declare @x sysname
set @x = 'C:\Users\testuser\Desktop\testing.sql'
:OUT $(TEMP)\GetServerName1.sql
PRINT ':SETVAR FilePath'+ ' ' + @x
GO
:OUT stdout
:r $(TEMP)\GetServerName1.sql
GO
:r $(FilePath)
当我尝试将此代码包装在存储过程中时,它会导致"致命错误"。
当我在没有将其包装在存储过程中的情况下运行它时,它正在执行其工作而没有错误。
当我查看存储过程时,我找到了这段代码:
ALTER proc [dbo].[testing]
as
declare @x sysname
set @x = 'C:\Users\testuser\Desktop\testing.sql'
PRINT ':SETVAR FilePath'+ ' ' + @x
似乎sqlcmd
代码会自动消失。我不知道为什么会这样。
任何人都可以帮我告诉我如何将上述代码包装在存储过程中。
谢谢Saurav