2015-03-24 8 views
-1

У меня есть таблица с именем Students, и у нее есть StudentID, который является первичным ключом, а другая - StdAccounts, а также имеет StudentID.Как скопировать значения из таблицы в другую таблицу C# SQL

Когда я регистрирую кого-то, я хочу, чтобы программа скопировала StudentID (от студентов) к StudentID (StdAccounts) Я искал свою проблему в Интернете. Нашел что-то и попытался измениться. Это то, что л сделал и не работает

INSERT INTO (StdAccounts(StudentID), StudentPassword) 
    select s.StudentID FROM Students s 
    WHERE NOT EXISTS (SELECT StudentID FROM StdAccounts std 
        WHERE s.StudentID = std.StudentID) VALUES (@Password) 
+0

Что вы имеете в виду _doesnt work_? Какую ошибку вы получите? –

+0

l получил ошибку синтаксиса (и ключевое слово VALUES – FLap1x

+0

Я удивляюсь, почему мой вопрос опустил голос :( – FLap1x

ответ

0

Поместите @Password в списке выбора:

INSERT INTO StdAccounts (StudentID, StudentPassword) 
    select s.StudentID, @Password FROM Students s 
    WHERE NOT EXISTS (SELECT StudentID FROM StdAccounts std 
        WHERE s.StudentID = std.StudentID) 
+0

Downvoter, пожалуйста, объясните, что случилось! – jarlh

+0

Да, у меня также не было причины для downvote. Вы должны выполнить эту задачу. – Sachin

+0

Я не запустил вас. У меня нет 125 репутации для голосования :) – FLap1x

0

Хм, может быть:

INSERT INTO 
    StdAccounts 
    (
     StudentID 
     ,StudentPassword 
    ) 
select top 1 
    StudentID, 
    @Password 
FROM Students 
WHERE 
    Password = @Password 

хотя на самом деле вы не должны делать это в одном выражении select.

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

+0

Итак, вы предлагаете мне удалить таблицу StdAccounts и создать столбец с именем Password to Students? Я думал, что безопасно создать еще одну таблицу для Student ID и пароль – FLap1x

+0

Нет, я просто попытался ответить на ваш вопрос и не судить о вашем решении. Но я не хочу, чтобы меня голосовали люди, которые думают, что я говорю, что это хорошо! – Ewan

+0

Я имею в виду, если вы у меня нет пароля в Студентах, и вы добавляете новую строку в StdAccounts. what studentId вы хотите использовать? – Ewan

0
INSERT INTO StdAccounts(StudentID, StudentPassword) 
    select StudentID ,@Password FROM Students 
    WHERE StudentID not in (SELECT StudentID FROM StdAccounts std 
           inner join Students s 
           on s.StudentID = std.StudentID 
         ) 
+0

Ошибка указан неверно Синтаксис ключевое слово WHERE – FLap1x

+0

@ FLap1x Просмотреть мои изменения –

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