SQLServer2005で次のエラーメッセージが表示されます
メッセージ120、レベル15、状態1、プロシージャEPIN、37行目
INSERTステートメントの選択リストには、挿入リストよりも少ない項目が含まれています。SELECT値の数は、INSERT列の数と一致する必要があります。
選択リストと挿入リストをコピーしてExcelに貼り付け、各リストに同じ数のアイテムがあることを確認しました。両方のテーブルに追加の主キーフィールドがあり、挿入ステートメントにも選択リストにもリストされていません。それが適切かどうかはわかりませんが、疑わしいかもしれません。
これが私のストアドプロシージャのソースです:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: Kristian Manuel
-- Create date: 10/3/2012
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[EPIN]
-- Add the parameters for the stored procedure here
@PLUCODE varchar(30), --Table tblPolicy
@ECPAYFEES numeric(18,2),
@COSTPAYABLE numeric(18,2),
@RETAILPRICE numeric(18,2),
@DENOMINATION varchar(50),
@CARDNAME varchar(50),
@DistributorID varchar(8),
@AccntID decimal(18,0)
--PO1
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT INTO [ECPAY-PC].[GENESIS].[dbo].[tblPolicy]
(
PolicyID ,
AccountTID ,
DistributorID ,
CARDNAME ,
DENOMINATION ,
RETAILPRICE ,
COSTPAYABLE ,
ECPAYFEES ,
PLUCODE
)
SELECT
t.*
FROM
(SELECT
AccountTID = @AccntID,
DistributorID = @DistributorID,
CARDNAME = @CARDNAME,
DENOMINATION = @DENOMINATION,
RETAILPRICE = @RETAILPRICE,
COSTPAYABLE = @COSTPAYABLE,
ECPAYFEES = @ECPAYFEES,
PLUCODE = @PLUCODE) t,
[ECPAY-PC].[ECPNWEB].[dbo].[account] a
WHERE
a.AccntID = t.AccountTID --for account
END