如何将值从一个表复制到另一个表C#SQL

如何将值从一个表复制到另一个表C#SQL,c#,sql,C#,Sql,我有一个名为Students的表,其中StudentID是主键,另一个表是StdAccounts,它也有StudentID 当我注册某人时,我希望程序将StudentID(从Students)复制到StudentID(StdAccounts) 我在网上搜索了我的问题。发现了一些东西并试图改变。这就是我做过的和没有做过的 INSERT INTO (StdAccounts(StudentID), StudentPassword) select s.StudentID FROM Students

我有一个名为Students的表,其中StudentID是主键,另一个表是StdAccounts,它也有StudentID

当我注册某人时,我希望程序将StudentID(从Students)复制到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)

将@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)
嗯,也许:

INSERT INTO 
    StdAccounts
    (
        StudentID
        ,StudentPassword
    ) 
select top 1 
    StudentID,
    @Password
FROM Students
WHERE 
    Password = @Password
虽然实际上不应该在一个select语句中执行此操作


我的意思是,你可以看到一个明显的问题,迫使你使用“top 1”显然不适用于名为“password”的变量。

你说的“不工作”是什么意思?你得到了什么错误?我得到了语法错误(和关键字值我想知道为什么我的问题得到了否决票:(是的,我也没有得到否决票的原因。你应该做这项工作。我没有否决你。我没有投票权:)所以,你建议我删除StdAccounts表并在学生中创建一个名为Password的列吗?我认为为学生ID和Password创建另一个表是安全的。不,我只是试图回答你的问题,而不是判断你的解决方案。但我不想让那些认为我说这是件好事的人投票反对!我的意思是如果您在学生中没有密码列,并且正在向StdAccounts添加新行。您希望使用什么studentId?
 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
                         )