部門 ID を使用して返されるレコードの数を制限できるストアド プロシージャを作成しようとしています。一時テーブルに参加してレコードを制限しようとしています。
以下のコードを実行すると、エラーが発生します。
テーブル '#department' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ON の場合にのみ指定できます。
コードは次のとおりです。
DECLARE @departmentID INT
SET @departmentID = 4
-- create temp department table --
select top 0 * into #department from PayrollDepartment
-- load temp department table
IF @departmentID < 1 OR @departmentID IS NULL
BEGIN
INSERT INTO #department SELECT * FROM PayrollDepartment
END
ELSE
BEGIN
INSERT INTO #department SELECT * FROM PayrollDepartment WHERE PayrollDepartmentID = @departmentID
END
私はから始めました:
IF @departmentID < 1 OR @departmentID IS NULL
BEGIN
SELECT * INTO #department FROM ApplicationEmployeeInfo..PayrollDepartment
END
ELSE
BEGIN
SELECT * INTO #department FROM ApplicationEmployeeInfo..PayrollDepartment WHERE PayrollDepartmentID = @departmentID
END
しかし、私はエラーが発生します:
データベースには「#department」という名前のオブジェクトがすでに存在します
私はSQLの専門家ではないので、これを行うためのより良い方法があるでしょうか?