2016-03-01 3 views
0

Почему я не могу создать # таблицу в этой процедуре?неверная таблица при создании хеш-таблицы в процедуре

drop procedure TESTMD 
go 
CREATE PROCEDURE TESTMD 

AS 
declare @SQL_TXT varchar(1000) 
BEGIN 

SELECT @SQL_TXT ='create table #TESTMD2 (id numeric null)' 
exec (@SQL_TXT) 
SELECT @SQL_TXT='select * into #TESTMD2 from TESTMD1' 
exec (@SQL_TXT) 
select @SQL_TXT='insert into #TESTMD2 (id) values(1)' 

exec (@SQL_TXT) 
END 

я получил ошибку #TESTMD2 not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).

+0

Хорошо, но выяснить, какое утверждение является неправильным (создать? Выберите ? insert?) – dbndhjefj

+0

@szpal нет ничего плохого, если запустить создание вручную, он работает, если я создаю таблицу в процедуре, я не получаю ошибку, однако кажется, что она не создана ни – Moudiz

+0

. Вы можете попробовать создать таблицы, а затем создать proc, а затем отбрасывать g таблицы. Я забываю детали, но помню, что в некоторых случаях объекты, на которые ссылается SP, должны существовать при создании, но затем могут быть удалены. –

ответ

1

хорошо я не знаю, почему в Exec он не работал, однако этот способ работает

drop procedure TESTMD 
go 
CREATE PROCEDURE TESTMD 

AS 
BEGIN 

create table #TESTMD2 (id numeric null) 

select * into #TESTMD2 from TESTMD1 

insert into #TESTMD2 (id) values(1) 


END 
Смежные вопросы