2013-10-05 3 views
0

Вставки полных данных столбцов одной таблицы для определенного столбца в другой таблице в SQL SERVERВставка полных данных столбцов одной таблицы для определенного столбца в другой таблице в SQL Server

У меня есть две таблицы, т.е. AuditCalendar, ScheduleAudit

  • аудита Календарь имеет два столбца Taskid, TaskTypeId
  • Расписание аудита имеет две колонки Scheduleid, Taskid

аудит Календаря выглядит следующим образом

Taskid (Auto increment) TaskTypeId 
------------------------------------- 
     1      1 
     2      2 
     3      3 
     4      1 
     5      1 

Но я хочу Taskid столбцов данных аудита Календарь таблицы на основе TaskTypeId .Columns

После завершения запроса, таблица ScheduleAudit должна выглядеть следующим образом

Scheuleid (AutoIncrement)  Taskid 
------------------------------------- 
      1      1 
      2      1 
      3      1 

Мне нужно запустить этот запрос, похоже, что-то вроде ошибки

подзапрос возвращает более одного значения

Запрос является:

INSERT INTO ScheduleAudit(TaskId) 
VALUES ((SELECT TaskId FROM AuditCalendar Where TaskTypeId = 1)) 

Пожалуйста, вы можете предложить, как я могу сделать этот подход Я новичок в SQL Server, но кто-то говорит, что использование курсоров .. .. Я действительно путаюсь последние 1 неделю над словами. А также искать google, но не получить его сейчас ... Пожалуйста, можете ли вы дать мне какие-нибудь ценные предложения.

ответ

2

insert ... values Предполагается, что вставить один ряд. Так что в скобках предполагается, что вы создадите одну строку, иначе она потерпит неудачу.

Там нет необходимости использовать insert ... values, когда вы можете использовать insert ... select:

INSERT INTO ScheduleAudit(TaskId) 
SELECT TaskId FROM AuditCalendar Where TaskTypeId=1 

... однако, что будет производить

       1           1 
           2           4 
           3           5 

Я не уверен, я понимаю логику производства ваш пример вывода.

+0

Это послужило моей цели. Спасибо. – METALHEAD

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