Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Errore SQL dinamico durante la conversione di nvarchar in int

Devi trasmettere tutti i numeri a nvarchar nella concatenazione.

Non esiste una conversione implicita dello stile VBA in stringa. In SQL Server la precedenza del tipo di dati significa che gli ints sono maggiori di nvarchar:quindi l'intera stringa sta cercando di essere CAST su int.

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

Modifica:Will A ha un buon punto:fai attenzione ai NULL!