Die Datentypen nvarchar und varchar sind unvereinbar, in der modulo-operator

Ich bin mit den folgenden cursor-Befehl um einen Datensatz zu aktualisieren, der auf meinem Tisch auf einem join basiert.

Habe ich einige ähnliche code-Ordnung, die in einem anderen Teil meines Programms, ohne dass jedoch, WIE die Logik auf die Verknüpfung.

Aber wenn ich es ausführen dieser code wirft einen Fehler.

Msg 402, Ebene 16, Status 1, Zeile 12

Die Datentypen nvarchar und varchar sind unvereinbar, in der modulo-operator.

Hier ist mein code:

DECLARE @tablevalue NVARCHAR(MAX), @sql NVARCHAR(MAX); 

DECLARE table_value_cursor CURSOR 
FOR
    SELECT DISTINCT [Tariff Lookup]
    FROM [OrbisBilling].[dbo].[masked_2014-06-30-2014-06-01-customer325];

OPEN table_value_cursor 

FETCH NEXT FROM table_value_cursor INTO @tablevalue 

WHILE @@FETCH_STATUS = 0 
BEGIN
   SELECT @sql = N'

   UPDATE [masked_2014-06-30-2014-06-01-customer325] 
   SET [masked_2014-06-30-2014-06-01-customer325].[Sell Price] = 
ROUND ([Orbisrates].[dbo].[Orbis_Import_June2014].[Peakperminute] /60 * [OrbisBilling].[dbo].[masked_2014-06-30-2014-06-01-customer325].[ChargedTimeSecs] + [Orbisrates].[dbo].[Orbis_Import_June2014].[Peakconnect], 4) 
   FROM [OrbisRates].[dbo].[Orbis_Import_June2014]
   INNER JOIN [OrbisBilling].[dbo].[masked_2014-06-30-2014-06-01-customer325] on [OrbisBilling].[dbo].[masked_2014-06-30-2014-06-01-customer325].[To] LIKE [Orbis_Import_June2014].[Destination]+'%'
   WHERE 
      [OrbisBilling].[dbo].[masked_2014-06-30-2014-06-01-customer325].[tariff lookup] = '''+ @tablevalue +'''';

   EXEC sp_executesql @sql; 

   FETCH NEXT FROM table_value_cursor INTO @tablevalue; 
END 

CLOSE table_value_cursor 
DEALLOCATE table_value_cursor;

PS. Ich habe getestet das update Abschnitt in der Mitte und das läuft gut auf Ihre eigenen.

Jede Hilfe sehr dankbar.

InformationsquelleAutor user3580480 | 2014-07-06

Schreibe einen Kommentar