我该怎么办SELECT * INTO [temp table] FROM [stored procedure]?不FROM [Table],没有定义[temp table]?
Select所有数据都可以BusinessLine正常tmpBusLine工作.
select *
into tmpBusLine
from BusinessLine
Run Code Online (Sandbox Code Playgroud)
我尝试相同,但使用stored procedure返回数据,并不完全相同.
select *
into tmpBusLine
from
exec getBusinessLineHistory '16 Mar 2009'
Run Code Online (Sandbox Code Playgroud)
输出消息:
消息156,级别15,状态1,行2关键字'exec'附近的语法不正确.
我已经阅读了几个创建一个与输出存储过程结构相同的临时表的例子,它工作正常,但不提供任何列会很好.
主要问题是将行的索引更改为1,2,3 ..其中contact-id和type是相同的.但是所有列都可以包含完全相同的数据,因为一些前雇员搞砸了并通过contact-id和type更新所有行.不知何故,有些行没有混乱,但索引行是相同的.这完全是混乱.
我试图使用一个带有来自外部光标的变量的内部游标.但似乎它卡在内部光标中.
查询的一部分如下所示:
Fetch NEXT FROM OUTER_CURSOR INTO @CONTACT_ID, @TYPE
While (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
DECLARE INNER_CURSOR Cursor
FOR
SELECT * FROM CONTACTS
where CONTACT_ID = @CONTACT_ID
and TYPE = @TYPE
Open INNER_CURSOR
Fetch NEXT FROM INNER_CURSOR
While (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?是@@ FETCH_STATUS暧昧还是什么?
编辑:如果我不在内部游标内使用此代码,一切看起来很好:
UPDATE CONTACTS
SET INDEX_NO = @COUNTER
where current of INNER_CURSOR
Run Code Online (Sandbox Code Playgroud)
编辑:这是大局:
BEGIN TRAN
DECLARE @CONTACT_ID VARCHAR(15)
DECLARE @TYPE VARCHAR(15)
DECLARE @INDEX_NO SMALLINT
DECLARE @COUNTER SMALLINT
DECLARE …Run Code Online (Sandbox Code Playgroud)