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

时间:2016-06-15 06:20:37

标签: sql sql-server winforms 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

为什么这不可能?

3 个答案:

答案 0 :(得分:2)

BorderPane

答案 1 :(得分:2)

您无法在Insert语句中使用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);

答案 2 :(得分:1)

试试这个:

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

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