|
分類:[ASP.NET (VB)]
お世話になっております
お聞きしたいのはUpdateCommandの中身なのですが
元々はこうなっていて、正しく動作していたのです。
UPDATE [user] SET [company] = @company, [name] = @name, [age] = @age WHERE [UserId] = @original_UserId"
しかしもう1つ別のテーブルデータも更新したくなりました。
UPDATE [mailinfo] SET [Email] = @Email WHERE [UserId] = @original_UserId
別々であれば正しく動きます。
そこでストアドプロシージャを以下のようにして、
-------------------
CREATE PROCEDURE SP_userupdate
@UpUserID uniqueidentifier,
@company nvarchar(50),
@name nvarchar(50),
@age nvarchar(50),
@Email nvarchar(256)
AS
BEGIN
BEGIN TRANSACTION
UPDATE [user] SET [company] = @company, [name] = @name, [age] = @age WHERE [UserId] = @UpUserID
UPDATE [mailinfo] SET [Email] = @Email WHERE [UserId] = @UpUserID
COMMIT TRANSACTION
END
GO
-------------------
UpdateCommandの中身の部分を
EXEC SP_ユーザ情報更新 @original_UserId, @company, @name, @age, @Email
にしたところエラーが出ました。
「sql_variant データ型から uniqueidentifier データ型への暗黙的な変換は許可されません。
このクエリを実行するには、CONVERT 関数を使います。」
そこで
EXEC SP_userupdate CONVERT(uniqueidentifier, @original_UserId), @company, @name, @age, @Email
もしくは
EXEC SP_userupdate CAST (@original_UserId AS uniqueidentifier), @company, @name, @age, @Email
と書き換えてみましたが、どちらも動きませんでした。
どんな小さなことでも構いませんのでご指摘頂けませんでしょうか
よろしくお願いします。
|