Sql 在insert命令中使用变量
我想在INSERT命令中使用一个变量。此变量包括StoredProcess的结果值:Sql 在insert命令中使用变量,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想在INSERT命令中使用一个变量。此变量包括StoredProcess的结果值: declare @File as varbinary(max) exec @File=[dbo].[MySp] 但如果在INSERT命令中使用@File,表中会写入另一个值 insert into [dbo].[Plots] values ('test', @File) 我的存储过程: CREATE PROCEDURE [MySp] AS BEGIN EXEC sp_execute_exter
declare @File as varbinary(max)
exec @File=[dbo].[MySp]
但如果在INSERT命令中使用@File
,表中会写入另一个值
insert into [dbo].[Plots] values ('test', @File)
我的存储过程:
CREATE PROCEDURE [MySp]
AS
BEGIN
EXEC sp_execute_external_script @language = N'R'
, @script = N'_RCODE_'
, @input_data_1 = N'_INPUT_QUERY_'
,@output_data_1=N'OutputDataset'
--- Edit this line to handle the output data frame.
WITH RESULT SETS (([plot] VARBINARY(max)));
END;
您的
EXEC
调用将获得SP的结果代码,如果没有显式的return语句,则该代码为0表示成功
有关如何从SP捕获实际数据的更多详细信息,请参阅此答案:您使用存储过程是错误的。 第一个屏幕截图上有一个记录集,但在执行后,
exec@File=[dbo].[MySp]
变量@File
中没有该记录集。
你有
@返回\u状态
在@文件中
@return_status是存储返回值的可选整数变量
模块的状态。必须在批处理中声明此变量,
存储过程,或在执行过程中使用之前的函数
声明
正确的查询可以如下所示:
declare @File as varbinary(max)
DECLARE @Table TABLE
(
plot VARBINARY(MAX)
)
INSERT @Table
exec [dbo].[MySp]
SELECT @File = MAX(plot)
FROM @Table
insert into [dbo].[Plots] values ('test', @File)
您确定它不是存储过程中的
out
参数吗?如果是这种情况,则存储的proc语法不正确。out参数的数据类型是什么?它是VARBINARY(MAX)@Igor我已经用SP更新了我的帖子