遇到問題與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」 –