2015-07-27 2 views
0

Я хотел проверить, возможно ли что-то подобное. У меня есть переменная таблицы с Yes и No. Я хочу, чтобы создать запрос на выборку с помощью этого (в основном перекрестное соединение), а не использовать этот запрос на выборку, чтобы вставить все данные в таблицеВставка в SQL Server с использованием переменной таблицы @temp

DECLARE @testTable TABLE (testTable nvarchar(3)) 

INSERT INTO @testTable VALUES ('Yes') 
INSERT INTO @testTable VALUES ('No') 

INSERT INTO DimLifeEventFlags_Stage_1 
(
Select 
    LET.ID AS eID, 
    LERS.ID AS cID, 
    DYLE.testTable AS testTable 
from 
    mainTable1 LERS, 
    mainTable2 LET , 
    @testTable DYLE 
    ) 
+0

да вы делаете хорошо :) – wiretext

+0

Если вы хотите, чтобы пересечь присоединиться некоторые данные с другими данными, да, вы можете сделай это. –

+0

Совет. Вы можете вставить несколько строк в один оператор, например. 'insert into значения @TestTable ('Yes'), ('No');'. – HABO

ответ

1

Там нет причин вы не можете делать то, что вы делаете, но если бы я писал это, я бы использовал CROSS JOIN join, чтобы быть явным. CROSS JOIN также упрощает процесс объединения в LEFT или INNER.

Я бы также не использовать временную таблицу на всех, и вместо того, чтобы использовать выражение значения

INSERT INTO DimLifeEventFlags_Stage_1 
(
Select 
    LET.ID AS eID, 
    LERS.ID AS cID, 
    DYLE.testTable 
from 
    mainTable1 LERS 
    CROSS JOIN mainTable2 LET 
    CROSS JOIN (Values ('Yes'), 
         ('No') 
       ) as DYLE (testTable) 
    ) 
Смежные вопросы