J'ai un nvarchar (50) code> dans une table SQL Server 2000 définie comme suit:
DECLARE @TaskID nvarchar(50)
SET @TaskID = CAST(NEW() AS nvarchar(50))
4 Réponses :
Veuillez essayer le casting suivant:
Ce script de test fonctionne bien pour moi ... Je ne peux que suggérer que votre Taskid n'est peut-être pas un nvarchar (50) comme vous dites? Essayez un sp_columns juste pour vérifier ...
CREATE Table #TaskData (TaskId NVARCHAR(50)) INSERT INTO #TaskData (TaskId) SELECT CONVERT(NVARCHAR(50), NEWID()) UPDATE #TaskData SET TaskId = CONVERT(NVARCHAR(50), NEWID()) DROP TABLE #TaskData
Utilisez le type de données Varchare, Nvarchar a besoin de double taille p>
Lorsque vous ne spécifiez pas la taille de votre Varchar / Nvarchar pendant une distribution ou une convertie, il est par défaut de 30 caractères. Vous avez besoin de 36 caractères pour convertir un guide à une chaîne. C'est pourquoi vous obtenez l'erreur.
L'un de ceux-ci fonctionnera: p>
Cela me semble être la réponse la plus précise ici.
Avez-vous et déclenche sur cette table? Vous pouvez obtenir des messages d'erreur de la gâchette. sp_helptrigger 'TaskData'
@Gmastros - Non, le problème était PEBKAC / PIGNICNIC plus communément appelé code 'ID 10T'.