que tienen una columna nvarchar(50)
en una tabla de SQL Server 2000 se define de la siguiente manera:¿Por qué no funciona este SQL CAST?
TaskID nvarchar(50) NULL
necesito para llenar esta columna con el GUID de SQL aleatoria usando la función NEWID()
(soy incapaz de cambiar el tipo de columna a uniqueidentifier
) .
yo probamos este:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar)
pero me dio el siguiente error:
Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type nvarchar.
También probé:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar(50))
pero luego dio este mensaje:
Msg 8152, Level 16, State 6, Line 1 String or binary data would be truncated.
No entiendo por qué esto no funciona, pero esto hace:
DECLARE @TaskID nvarchar(50)
SET @TaskID = CAST(NEW() AS nvarchar(50))
También probé CONVERT(nvarchar, NEWID())
y CONVERT(nvarchar(50), NEWID())
pero tengo los mismos errores.
Actualización:
Ok, mi vista se esta volviendo, el tamaño de la columna sobre la mesa es nvarchar(32)
no 50. profundas disculpas para el timewasting y gracias por todas las respuestas.
¿Tiene usted y dispara en esta tabla? Es posible que reciba mensajes de error del desencadenador. sp_helpTrigger 'TaskData' –
@GMastros - no, el problema era PEBKAC/PICNIC más conocido como código 'ID 10T'. – Kev