Why won't this SQL CAST work?
- by Kev
I have a nvarchar(50) column in a SQL Server 2000 table defined as follows:
TaskID nvarchar(50) NULL
I need to fill this column with some random SQL Unique Identifiers (I am unable to change the column type to uniqueidentifier).
I tried this:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar)
but I got the following error:
Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting
expression to data type nvarchar.
I also tried:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar(50))
but then got this error:
Msg 8152, Level 16, State 6, Line 1
String or binary data would be
truncated.
I don't understand why this doesn't work but this does:
DECLARE @TaskID nvarchar(50)
SET @TaskID = CAST(NEW() AS nvarchar(50))
I also tried CONVERT(nvarchar, NEWID()) and CONVERT(nvarchar(50), NEWID()) but got the same errors.