我有一个带有用户名参数的存储过程。我想用一个查询来获取用户标识,然后在进一步的查询中使用这个变量。从存储过程中的查询存储变量
这是我到目前为止。它编译好,但执行时,我得到一个错误“错误转换数据类型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
你不能只是将任何字符串转换为uniqueidentifier。看起来aspnet_Users.UserId就是这样一个字符串。 T-SQL CONVERT命令可以转换项目,但是如果UserId不是有效的唯一标识符,则可以做的事情不多。你需要重新评估你正在做的事情,并在那里做一些改变。 – 2010-06-30 18:13:45