从一个表中选择行数据,然后使用TableAdapter插入另一个表



我正在使用TableAdapter查询配置向导。我想从一个表中选择一个数据,然后插入另一个表中,如下所示。

SELECT a.StudentID FROM [dbo].[Student] AS a WHERE [Email] = @Email;
INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost])
VALUES (a.StudentID, @Param1, @Param2);

当我在应用程序上召集函数时,错误消息提示:

Error message: The multi-part identifier "a.StudentID" could not be bound

为什么不可能?

INSERT INTO [dbo].[registration] 
        ([studentid], 
         [uniformoptionid], 
         [cost]) 
SELECT a.studentid, 
   @Param1, 
   @Param2 
FROM   [dbo].[student] AS a 
WHERE  [email] = @Email; 

您不能在插入语句中使用a.StudentID。您可以声明变量,然后使用它。像这样

Declare @studentID int
SELECT @studentID=a.StudentID FROM [dbo].[Student] AS a WHERE [Email] = @Email;
INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost])
VALUES (@studentID, @Param1, @Param2);

尝试以下:

INSERT INTO [dbo].[Registration] ([StudentID], [UniformOptionID], [Cost])
SELECT a.StudentID, @Param1, @Param2 FROM [dbo].[Student] AS a WHERE [Email] = @Email;

即,您可以使用select语句将值插入表中。@Param1, @Param2可以直接在select语句中提供。

相关内容

最新更新