用存储过程得出的结果如何保存到新建的表中?
在大家的帮助下,我的存储过程的代码已经出来,虽然不是最简单的那种:
DECLARE @cmd as varchar(500)
DECLARE @RCL_DATE as char(8)
set @RCL_DATE =convert(char(8) ,GETDATE(),112)
set @cmd = 'dir F:\Chris Lin\ ' + @RCL_DATE + '.dmp '
EXEC master..xp_cmdshell @cmd
CREATE TABLE #nw (id int identity(1,1),message varchar(300))
INSERT INTO #nw EXEC master..xp_cmdshell @cmd
IF EXISTS(SELECT 1 FROM #nw WHERE id> 7)
SELECT convert(char(10) ,GETDATE(),120) time, '1 ' result
ELSE
SELECT convert(char(10) ,GETDATE(),120) time, '0 ' result
问题是我这样运行的结果如何保存到表中?
我新建了表:
create table backup_list
(datebase_name varchar(30) not null,
create_time char(10) not null,
result int not null)
go
现在把上面的运行结果保存到表的后两列中create_time,result
请大家帮助我,谢谢
[解决办法]
lamhouyue() ( ) 信誉:100 Blog 2007-1-16 17:07:37 得分: 0
非常感谢大家的帮助,但好象有点问题
据说我第一段语句没有明确的返回值,所以insert backup_list(datebase_name,create_time,result) EXEC yourProcedureName,运行不出来,报了错
听说是在存储过程中直接插入,好象不是分开两段的,请大家再帮我想想
-----------------------
不是让你像这样EXEC yourProcedureName外边调用,而是,把执行语句放在存储过程中的最后一步~
在存储过程中执行你拼好的插入语句:exec @sql,即可
[解决办法]
IF EXISTS(SELECT 1 FROM #nw WHERE id> 7)
insert into backup_list(create_time ,result)
SELECT convert(char(10) ,GETDATE(),120) time, '1 ' result
ELSE
insert into backup_list(create_time ,result)
SELECT convert(char(10) ,GETDATE(),120) time, '0 ' result