在存储过程中调用另一个存储过程的问题?

robert_ypeng 2007-04-27 01:41:07
CREATE PROCEDURE [dbo].[spMRViewToProc]
@FromDbName varchar(50),
@ToDbName varchar(50)
AS
exec('SELECT '+@FromDbName+'.dbo.materialrequest.*, ISNULL('+@ToDbName+'.dbo.materialrequestContrast.ModifyDate,
'+@FromDbName+'.dbo.materialrequest.InputDate) AS ModifyDate
FROM '+@FromDbName+'.dbo.materialrequest LEFT OUTER JOIN
'+@ToDbName+'.dbo.materialrequestContrast ON
'+@FromDbName+'.dbo.materialrequest.MaterialRequestID = '+@ToDbName+'.dbo.materialrequestContrast.MaterialRequestID')
GO

CREATE PROCEDURE [dbo].[spTest]
@FromDbName varchar(50),
@ToDbName varchar(50)
AS
???
EXEC('INSERT INTO MRViewToProc EXEC spMRViewToProc '+@FromDbName+', '+@ToDbName+'')
???
GO

spMRViewToProc存储过程返回结果集的数据列非常多,我想把spMRViewToProc存储过程返回的结果集存储到一个临时表里,一开始我建了一个表MRViewToProc,结构和spMRViewToProc存储过程返回结果集的结构完全一样,可是执行时出现错误,服务器: 消息 213,级别 16,状态 5,行 1
插入错误: 列名或所提供值的数目与表定义不匹配。我又看了好几遍发现结构一样,
请问有没有什么方法实现把spMRViewToProc存储过程返回结果集存储到一个临时表里,而不用一一定义每个列的类型????
...全文
317 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rookie_one 2007-04-27
  • 打赏
  • 举报
回复
嗯,平时引用变量用一个单引号,但是如果是包含在一组单引号中的话,那么里面的单引号就要变成''来转义
中国风 2007-04-27
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[spTest]
@FromDbName varchar(50),
@ToDbName varchar(50)
AS

exec( 'INSERT INTO MRViewToProc EXEC spMRViewToProc '''+@FromDbName+''', '''+@ToDbName+'''')

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧