Select * into #tempTable from exec Command shows an error 将执行命令的结果选择全部插入到名为 #tempTable 的临时表中时出现错误。

10 浏览
0 Comments

Select * into #tempTable from exec Command shows an error 将执行命令的结果选择全部插入到名为 #tempTable 的临时表中时出现错误。

我正在执行包含以下代码的字符串:

DECLARE @BadgeNo NVARCHAR(MAX);
SET @BadgeNo='8107';
SELECT * INTO #Testing 
   EXEC spNotification 'Param1','Param2','Param3','Param4';
EXEC  spSqlTmpTblToHtmlTbl 'tempdb..#Testing'

我只想以html格式获得结果。所以我执行spnotification来获得结果。

spSqlTmpTblToHtmlTbl将临时表转换为表格格式。但是,这里有一个问题,我无法从spNotification的结果中创建临时表。我知道select * into命令不能与exec命令一起使用。那么我该如何实现这个?

0
0 Comments

问题的原因是在使用SELECT * INTO语句中,将EXEC命令嵌套在其中会出现错误。解决方法是使用CREATE TABLE语句创建一个临时表,然后使用INSERT INTO语句将EXEC命令的结果插入到临时表中。

以下是解决方法的示例代码:

CREATE TABLE #Testing 
(
   COLUMN1 INT,
   COLUMN2 INT
)
INSERT INTO #Testing 
Exec spNotification 'Param1','Param2','Param3','Param4';

另外,你还可以尝试使用OPENQUERY来解决这个问题:

SELECT  *
INTO    #Testing 
FROM    OPENQUERY(YOURSERVERNAME, 'Exec spNotification ''Param1'',''Param2'',''Param3'',''Param4''')

需要注意的是,spNotification会产生动态数据。在某些环境中,可能会限制使用OPENQUERY。

0
0 Comments

问题:(Select * into #tempTable from exec Command shows an error)这个问题的出现的原因以及解决方法。

原因:在上述代码中,使用了EXEC命令执行存储过程SPNOTIFICATION,并将结果插入到一个临时表中。然而,SELECT INTO语句不能直接从EXEC命令中选择数据插入到临时表中,这导致了错误的发生。

解决方法:要解决这个问题,可以使用INSERT INTO SELECT语句来插入EXEC命令的结果到临时表中。以下是修改后的代码:

INSERT INTO #tempTable
EXEC SPNOTIFICATION 'Param1', 'Param2', 'Param3', 'Param4';

通过使用INSERT INTO SELECT语句,我们可以将EXEC命令的结果插入到临时表中,从而避免了错误的发生。

0