したがって、同様のデータを挿入する必要がある2つのテーブルがあります。これらは、さまざまなアプリケーションがアクセスする従業員 DB です。彼らです:
- dbo_Employees
- dbo_EmpDefaultSchedules
- dbo_EmpUsers
- dbo_EmpDefaultLocation
同様dbo_Employees
に、行を挿入すると、主キーが自動作成されます。その列は と呼ばれEmpID
ます。これらの異なるテーブルには、合計で約 22 の異なる列が追加されています。それらは、、、、、などのようなものFirstName
です。LastName
Address
Phone
変数のリストを取得して一度に入力し、そのスクリプトを実行して一度に 4 つのテーブルに追加できるスクリプトを作成しようとしています (最終的には、HR が情報を入力して自分で作成する Web ページ) )
私を悩ませているのは だけですdbo_EmpDefaultSchedules
。これは、dbo_Employees
( EmpID
) からの主キーを に挿入する必要がありdbo_EmpDefaultSchedules
、明らかに、スクリプトの最初の部分が実行されるまで作成されないためです。2番目の部分の挿入ステートメントは次のとおりです。
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 クエリと組み合わせるにはどうすればよいですか?
しかし、まだこれを機能させることはできません。