を実行するときに、私はテーブルを作成したがaccount
と呼ば:オペランドタイプ衝突エラーストアドプロシージャ
Iもaccount_TT
と呼ばれるテーブルのタイプ作成:私は、その後に、ストアドプロシージャを作成
CREATE TYPE account_TT AS TABLE
(
AccountID nvarchar(50)
)
をアカウントテーブルのレコードの挿入/更新:
ALTER PROCEDURE [dbo].[usp_InsertorUpadte]
@account_TT AS account_TT READONLY
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION;
MERGE dbo.[account] prj
USING @account_TT tt
ON prj.AccountID = tt.AccountID
WHEN MATCHED THEN UPDATE SET prj.CounterSeq = prj.CounterSeq+1
WHEN NOT MATCHED THEN INSERT (AccountID,CounterSeq)
VALUES (tt.AccountID, 1);
COMMIT TRANSACTION;
END
私はその上で右クリックして
Execute Stored Procedure
を選択し、パラメータ
@account_TT
の値を与え、このストアドプロシージャをテストするには
:
それは、エラーがスローされます。
Msg 206, Level 16, State 2, Procedure usp_InsertorUpadte, Line 2 Operand type clash: nvarchar is incompatible with account_TT
(1 row(s) affected)
なぜこのエラーがありますスローされ、エラーの原因となる問題を解決するにはどうすればよいですか?
あなたは私がちょうどクリックすると、それを実行しようとした –
@Prdpこのプロシージャを呼び出すために使用される 'exec'表示します。画像のように、それは私に入力パラメータ – trx
を聞いた可能性がありますここで同じ問題:(http://stackoverflow.com/questions/12789560/sql-server-table-type-clash-operand) – StefanR