我使用下面的命令光标更新基于连接上我的表中的记录。
我有一些相似的代码在我的程序的另一部分工作正常,但没有使用类似的逻辑上的连接。
但是,当我执行这个代码,它抛出一个错误。
消息402,级别16,状态1,行12
数据类型为nvarchar和varchar是在模运算符不兼容。
这里是我的代码:
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。 我已经测试中间的更新部分,并且运行正常自身。
任何帮助极大的赞赏。