Aşağıdaki gibi tanımlanan bir SQL Server 2000 tablosunda bir nvarchar(50)
sütunu var:Bu SQL CAST neden çalışmıyor?
TaskID nvarchar(50) NULL
Bu sütunu NEWID()
işlevini kullanarak rastgele SQL GUID'leri ile doldurmam gerekiyor (sütun türünü uniqueidentifier
olarak değiştiremiyorum).
:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar)
fakat şu hatayı aldım:
Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type nvarchar.
Ayrıca denedim:
UPDATE TaskData SET TaskID = CAST(NEWID() AS nvarchar(50))
ancak bu hatayı aldım:
Msg 8152, Level 16, State 6, Line 1 String or binary data would be truncated.
Bunun neden işe yaramadığını anlamıyorum ama şu anlama geliyor:
DECLARE @TaskID nvarchar(50)
SET @TaskID = CAST(NEW() AS nvarchar(50))
Aynı zamanda CONVERT(nvarchar, NEWID())
ve CONVERT(nvarchar(50), NEWID())
denedim ama aynı hataları aldım.
Güncellenme:
Görüntüm devam ediyor, tablodaki sütun büyüklüğü 50 değilnvarchar(32)
. Zamanlama için en derin özürler ve tüm cevaplar için teşekkürler.
var ve bu masada tetikler mi? Tetikleyiciden hata mesajları alıyor olabilirsiniz. sp_helpTrigger 'TaskData' –
@GMastros - hayır, sorun daha çok "ID 10T" kodu olarak bilinen PEBKAC/PICNIC idi. – Kev