我正在使用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
为什么这不可能?
答案 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
声明中提供。