所以我有 2 个表需要在其中插入类似的数据。它们是不同应用程序访问的员工数据库。他们是:
- dbo_Employees
- dbo_EmpDefaultSchedules
- dbo_EmpUsers
- dbo_EmpDefaultLocation
依此类推dbo_Employees
,当您插入一行时,会自动创建主键。该列称为EmpID
。这些不同的表中总共添加了大约 22 个不同的列。它们是诸如FirstName
, LastName
, Address
,Phone
等之类的东西,等等。
我正在尝试创建一个脚本,我可以在其中获取变量列表,一次输入它们,然后运行该脚本以一次将其添加到 4 个表中(最终 HR 将输入信息并自己创建的网页)
唯一给我带来麻烦的是dbo_EmpDefaultSchedules
。dbo_Employees
这是因为我需要将( ) 中的主键EmpID
插入到dbo_EmpDefaultSchedules
中,显然它是在脚本的第一部分运行之前创建的。我对第二部分的插入语句是这样的:
INSERT INTO [Database].[dbo].[EmpDefaultSchedules] (StaffCode, EmpID, LastName, FirstName, Dept, MgrStaffCode, IsMgr, PayrollStatus, PayFrequency, StdHrsWk, EmailAddress )
VALUES (@StaffCode, (select EmpID from [Database].[dbo].[Employees] WHERE StaffCode = @StaffCode), @LastName, @FirstName, @Dept, @MgrStaffCode, @IsMgr, @PayrollStatus, @PayrollFrequency, @StdHrsWk, @EmailAddress)
当我这样做时,我收到此错误:
在这种情况下不允许子查询。只允许标量表达式。
我已经看到/读过这个: 在这种情况下不允许子查询。只允许标量表达式
还有这个: MYSQL插入多个表
还有这个: 如何将 sql 查询中的值存储到变量中?
还有这个: 如何将 SELECT + WHERE 查询与 INSERT 查询结合起来?
但仍然无法让它发挥作用。