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