У меня есть хранимая процедура с параметром имени пользователя. Я хочу использовать один запрос для захвата идентификатора пользователя, а затем использовать эту переменную в последующих запросах.Сохранение переменных из запросов в хранимых процедурах
Вот что у меня есть. Он компилируется ОК, но при выполнении я получаю сообщение об ошибке «Ошибка преобразования типа данных varchar в uniqueidentifier».
ALTER PROCEDURE [dbo].[sp_User_delete]
@username uniqueidentifier
AS
BEGIN
SET NOCOUNT ON;
DECLARE @UserId uniqueidentifier;
-- I guess I need to do something here to convert the ID
SET @UserId =
(SELECT UserId FROM aspnet_Users WHERE [email protected]);
SELECT * FROM dbo.aspnet_UsersInRoles WHERE [email protected];
END
Вы не можете просто преобразовать любую строку в уникальный идентификатор. похоже, что aspnet_Users.UserId - это просто такая строка. Команда T-SQL CONVERT может конвертировать элементы, но если UserId не является допустимым уникальным идентификатором, вы не можете многое сделать. Вам нужно переоценить то, что вы делаете, и внести туда некоторые изменения. –