日期:2014-05-18  浏览次数:20507 次

用存储过程得出的结果如何保存到新建的表中?
在大家的帮助下,我的存储过程的代码已经出来,虽然不是最简单的那种:

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