遇到问题与SQL Server 2008存储过程:我不断收到以下错误。SQL Server 2008 - “从字符串转换为uniqueidentifier时转换失败。”错误
将字符串转换为 uniqueidentifier时转换失败。
这里的存储过程 - 我已经斩了很多出来用于测试
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE RateReview
@ProfileKey INT
,@ReviewKey NVARCHAR(36)
,@Rating BIT
,@Result NVARCHAR(16) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SET @ReviewKey = 'NotFound'
DECLARE @ReviewID INT = 0
DECLARE @VisitorProfileID INT = 0
DECLARE @ReviewRatingID INT = 0
DECLARE @VotedUp BIT = 0
DECLARE @Temp UNIQUEIDENTIFIER
SET @Temp = CONVERT(UNIQUEIDENTIFIER, @ReviewKey)
-- Commented code here
END
GO
我尝试用标准的管理工作室“执行”菜单选项,这给了我这个调用此:
DECLARE @return_value int,
@Result nvarchar(16)
EXEC @return_value = [dbo].[maxi_content_RateReview]
@ProfileKey = 1985118925,
@ReviewKey = N'4D051C99-1D59-4BB0-BFB9-D26786B5C809',
@Rating = 1,
@Result = @Result OUTPUT
SELECT @Result as N'@Result'
SELECT 'Return Value' = @return_value
GO
我已经检查过GUID是否正确,并尝试使用CAST和CONVERT - 总是出现同样的问题。有任何想法吗?这让我疯狂!
看到这个所以答案http://stackoverflow.com/questions/1390109/convert-varchar-to-uniqueidentifier-in-sql-server/1390129#1390129 – sll
这不是一个骗局。链接的问题和答案是关于将不带破折号的字符串(如“a89b1acd95016ae6b9c8aabb07da2010”)转换为“uniqueidentifier” –