20
SQL 9 (2005)에 저장 프로 시저를 작성한 이래 SQL 10 (2008)으로 업그레이드했습니다. 그 이후로, 다음과 같은 저장 프로 시저가 작동을 중지하고 위의 오류를 던졌다 :문자열에서 고유 식별자로 변환 할 때 변환하지 못했습니다.
ALTER PROCEDURE [dbo].[GetModifiedPages]
@vPortalUID nvarchar(32) = ''
AS
BEGIN
-- Convert GUID to UI
DECLARE @nPortalUID AS uniqueidentifier
SET @nPortalUID = CAST(@vPortalUID AS uniqueidentifier)
은 PARAM의 @vPortalUID 전달이 포함 된 : 2A66057D-F4E5-4E2B-B2F1-38C51A96D385. 다음과 같이 저장된 proc을 실행합니다 :
EXEC GetModifiedPages '2A66057D-F4E5-4E2B-B2F1-38C51A96D385'
넘어집니다. 나는 Convert Aswell을 시도했다. 아직도 기쁨이 없습니다. 그 주위에 {}을 (를) 사용하여 가치를 부여했습니다. 위와 같이 프로그래밍 방식으로 수동으로 제거했습니다.
관심이 있으시면 위의 코드가 SSMS를 사용하여 실행되었으므로 ASP 기본 페이지에서 SP를 실행하고 있습니다.
미리 도움을 주셔서 감사합니다. 제임스
는
+1 그의 매개 변수가 너무 작다는 점에 대해 +1하지만, 그 때문에 그의 문자열은 실제로 잘 렸습니다. 변환하기 전에'print vPortalUID'를했다면'D385'가 잘리지 않는다는 것을 알 수 있습니다. – Eric
고맙습니다! 훌륭한 일! 이제 20 SP를 변경하십시오! ;) – jamesmhaley
내가 왜 그 일을하는지 모르겠다 http://stackoverflow.com/questions/1390109/convert-varchar-to-uniqueidentifier-in-sql-server : p .. 나는 먼저 varchar + 물론 1 개! – Zerotoinfinity