1. ホーム
  2. sql

[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない

2022-02-06 23:52:37

質問

以下のストアドプロシージャを作成しようとすると、以下のエラーが発生します。

オペランド型の衝突:uniqueidentifier は int と互換性がありません。

何が原因でこのエラーが発生するのか、私にはよくわかりません。私のすべてのテーブルで、UserIDは実際にはint型です。どなたか、私が何を間違えたのか、教えていただけませんか?

create procedure dbo.DeleteUser(@UserID int)
as

    delete from [aspnet_Membership] where UserId = @UserID
    delete from [Subscription] where UserID = @UserID
    delete from [Address] where UserID = @UserID
    delete from [User] where UserID = @UserID

go

解決方法は?

これらのテーブルの少なくとも1つには UserID として uniqueidentifier ではなく int . 各テーブルのデータを確認しましたか?どのような SELECT TOP 1 UserID FROM 各テーブルの収量は?を int または GUID ?

EDIT

UserIDというカラムを含むすべてのテーブルを基にプロシージャを構築したのだと思います。を含めるべきではなかったと思います。 aspnet_Membership テーブルは、実際にはあなたのテーブルではないので、あなたのスクリプトに含まれています。

を中心にテーブルを設計するつもりだったのなら aspnet_Membership データベースを使用する場合、なぜ残りのカラムは int そのテーブルでは、明らかに uniqueidentifier に対して UserID の列がありますか?