0

ストアドプロシージャを変更し、テーブルに追加するパラメータを追加しました。問題は、追加されたパラメーターの値が元のパラメーターと交換されていることです。

ALTER PROCEDURE [dbo].[spWeb_BulkGenerateWRsDevices]
(
    @WorkRequestDeviceId nvarchar(max) = NULL,
    @TechnicianId int = NULL,
@RequiredBy  datetime = NULL,
@Priority   int = NULL,
@WRTypeId int,
@WorkRequestSummary nvarchar(255) = NULL,
@AuthorOfRequest   int,
@Contact nvarchar(40) = NULL,
@PhoneNo  nvarchar(20) = NULL,
@StatusId int,
@Created  datetime = NULL,
@CustomerId int
)
AS
/* Update the WR record */
BEGIN
DECLARE @COUNT INT
SET @COUNT =(SELECT COUNT(*) FROM WorkRequest WHERE WorkRequestDeviceId IN(SELECT stringval FROM     dbo.CSV(@WorkRequestDeviceId)))

IF @COUNT >0

BEGIN
DECLARE @InsertedRows AS TABLE (WorkRequestId int,WorkRequestDeviceId int)

INSERT INTO WorkRequest 
(AllocatedTo,RequiredBy,Priority,WRTypeId,WorkRequestSummary,AuthorOfRequest,
    Contact,PhoneNo,StatusId,DateOfRequest,WorkRequestDeviceId,CustomerId)

OUTPUT Inserted.WorkRequestId,Inserted.WorkRequestDeviceId INTO @InsertedRows

     SELECT @TechnicianId ,@RequiredBy,@Priority,@WRTypeId,@WorkRequestSummary,@AuthorOfRequest,@Contact
        ,@PhoneNo,@StatusId,@Created,@CustomerId,* from dbo.fnSplit(@WorkRequestDeviceId, ',')

END

IF @COUNT = 0
BEGIN

INSERT INTO WorkRequest 
(WorkRequestDeviceId)
SELECT * from dbo.fnSplit(@WorkRequestDeviceId, ',')

UPDATE WorkRequest 
SET 
AllocatedTo =@TechnicianId ,
RequiredBy = @RequiredBy,
Priority = @Priority,
WRTypeId = @WRTypeId,
WorkRequestSummary =@WorkRequestSummary,
AuthorOfRequest= @AuthorOfRequest,
Contact = @Contact,
PhoneNo = @PhoneNo,
StatusId = @StatusId,
DateOfRequest = @Created,
CustomerId = @CustomerId
WHERE WorkRequestDeviceId IN(SELECT stringval FROM dbo.CSV(@WorkRequestDeviceId))

END

CustomerIdパラメーターを追加しました。プロシージャを呼び出して、Set WorkRequestDeviceId=312およびCustomerId=148と言うと、テーブルWorkRequestには新しいレコードがありますが、WorkRequestDeviceId=148およびCustomerId=312です。ストアドプロシージャは初めてなので、無知で申し訳ありません。ジェームズ

4

1 に答える 1

0

挿入は、挿入ステートメントと選択の変数を転置しています。

挿入物を次のように変更します。

INSERT INTO WorkRequest 
(AllocatedTo,RequiredBy,Priority,WRTypeId,WorkRequestSummary,AuthorOfRequest,
    Contact,PhoneNo,StatusId,DateOfRequest,CustomerId,WorkRequestDeviceId)

そして、すべてがうまくいくはずです。

于 2012-08-07T09:57:52.850 に答える