Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur SQL dynamique lors de la conversion de nvarchar en int

Vous devez CAST tous les nombres vers nvarchar dans la concaténation.

Il n'y a pas de conversion de style VBA implicite en chaîne. Dans SQL Server, la priorité des types de données signifie que les ints sont supérieurs à nvarchar :la chaîne entière essaie donc d'être convertie en int.

SET @SQL =  'SELECT ' + @GName + ' AS GrName ,' + @BR
              + CAST(@T_ID AS nvarchar(10)) + ' AS To_ID ,' ...

Edit :Will A a un bon point :faites attention aux valeurs NULL !