2014-05-26 8 views
0

Это мой код SQL.Вставить Into Из запроса SELECT

CREATE TABLE [dbo].[Basic] 
(
    ID int, 
    GroupCode int, 
    program int 
) 

DECLARE @tblnum int 

SELECT tblnum FROM dbo.Program 

SET @Qry = 'SELECT Hits_ID, GroupCode FROM dbo.' + @tblnum 

INSERT INTO [dbo].[Basic] 
(
ID, 
GroupCode 
) 
EXEC sp_executesql @Qry 

Проблема в том, мне нужно вставить значения в таблицу Basic где ID и GroupCode придет из другой таблицы, то столбец program должен иметь значение переменной @tblnum. И я не знаю, как это сделать. Незлая помощь. Спасибо.

+2

Почему вы не можете просто напишите 'INSERT ... SELECT'? Кроме того, вы на самом деле нумеруете свои таблицы ('FROM dbo. '+ @ Tblnum')? – Kermit

+0

Можете ли вы разместить образцы данных с требуемыми результатами? – sgeddes

ответ

0

Если я правильно понимаю, вы можете включить его в качестве константы:

CREATE TABLE [dbo].[Basic] (
    ID int, 
    GroupCode int, 
    program int 
); 

DECLARE @tblnum int; 

SELECT tblnum FROM dbo.Program; 

SET @Qry = 'SELECT Hits_ID, GroupCode, ''' + cast(@tblnum as varchar(255)) + ''' FROM dbo.' + @tblnum ; 

INSERT INTO [dbo].[Basic](ID, GroupCode, program) 
    EXEC sp_executesql @Qry; 

Вы также можете сделать это, передавая параметр в sp_execute_sql:

SET @Qry = 'SELECT Hits_ID, GroupCode, @tblnum FROM dbo.' + @tblnum ; 

INSERT INTO [dbo].[Basic](ID, GroupCode, program) 
    EXEC sp_executesql @Qry, N'@tblnum int', @tblnum = @tblnum; 
Смежные вопросы