20
在SQL 9(2005)中創建了一個存儲過程,並已升級到SQL 10(2008)。從那時起,以下存儲過程已停止工作,並拋出了上述錯誤:從字符串轉換爲uniqueidentifier時轉換失敗
ALTER PROCEDURE [dbo].[GetModifiedPages]
@vPortalUID nvarchar(32) = ''
AS
BEGIN
-- Convert GUID to UI
DECLARE @nPortalUID AS uniqueidentifier
SET @nPortalUID = CAST(@vPortalUID AS uniqueidentifier)
將在參數@vPortalUID通過包含:2A66057D-F4E5-4E2B-B2F1-38C51A96D385。我執行存儲過程像這樣:
EXEC GetModifiedPages '2A66057D-F4E5-4E2B-B2F1-38C51A96D385'
它倒下了。我已經嘗試過轉換。仍然沒有快樂。周圍也有{{}}的價值。我按照上面的步驟手動刪除了這些文件。
如果您有興趣,我正在從ASP經典頁面運行SP,但這應該不會影響到這一點,因爲上面的代碼是使用SSMS運行的。
在此先感謝您的幫助。 詹姆斯
+1因爲他的參數太小,但應該指出的是,因爲這個原因,他的字符串實際上被截斷了。如果您在轉換之前執行了「打印vPortalUID」,您會發現'D385'沒有完成切割。 – Eric 2009-09-25 12:11:56
謝謝!做得好!現在改變20 SP! ;) – jamesmhaley 2009-09-25 13:49:00
我不知道我爲什麼要這樣做http://stackoverflow.com/questions/1390109/convert-varchar-to-uniqueidentifier-in-sql-server:p ..我應該先把varchar +當然是1! – Zerotoinfinity 2013-07-12 13:12:55