Creado un procedimiento almacenado en SQL 9 (2005) y desde entonces actualizado a SQL 10 (2008). Desde entonces, el siguiente procedimiento almacenado ha dejado de funcionar y arrojado el error anterior:Error de conversión al convertir de una cadena de caracteres a uniqueidentifier
ALTER PROCEDURE [dbo].[GetModifiedPages]
@vPortalUID nvarchar(32) = ''
AS
BEGIN
-- Convert GUID to UI
DECLARE @nPortalUID AS uniqueidentifier
SET @nPortalUID = CAST(@vPortalUID AS uniqueidentifier)
El pasado en @vPortalUID PARAM contiene: 2A66057D-F4E5-4E2B-B2F1-38C51A96D385. Ejecuto el proceso almacenado como este:
EXEC GetModifiedPages '2A66057D-F4E5-4E2B-B2F1-38C51A96D385'
Se cae. He intentado Convertir también. Todavía no hay alegría. También he tenido el valor entrando con {} a su alrededor. Lo eliminé programaticamente y manualmente como se indica arriba.
Si está interesado estoy ejecutando el SP desde una página ASP Classic, aunque eso no debería afectar a esto ya que el código anterior se ejecutó con SSMS.
Gracias de antemano por su ayuda. James
+1 por el hecho de que su parámetro es demasiado pequeño, pero debe tenerse en cuenta que, debido a eso, su cadena está realmente truncada. Si hiciste un 'print vPortalUID' antes de convertir, verías que' D385' no hizo el corte. – Eric
¡Gracias! ¡Buen trabajo! ¡Ahora para cambiar los 20 SP! ;) – jamesmhaley
No sé por qué estaba haciendo eso http://stackoverflow.com/questions/1390109/convert-varchar-to-uniqueidentifier-in-sql-server: p .. Debería haber lanzado primero el varchar + 1 por supuesto! – Zerotoinfinity