I have a nvarchar(50)
column in a SQL Server 2000 table defined as follows:
TaskID nvarchar(50) NULL
I need to populate this column with random SQL GUID's using the NEWID()
function (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.
Update:
Ok, my eyesight is going, the column size on the table is nvarchar(32)
not 50. Deepest apologies for the timewasting and thanks for all the answers.