I have an nvarchar(50) column in a SQL Server 2000 table defined as follows:
TaskID nvarchar(50) NULL
I need to populate this column with a random SQL identifier using the NEWID() function (I cannot 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 conversion expression for nvarchar data type.
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 will be Truncated.
I do not understand why this does not work, but it 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:
Well, my vision is on, the column size on the nvarchar(32) table is not 50. My deepest apologies for the timewasting and thanks for all the answers.
sql-server tsql sql-server-2000
Kev
source share