我有以下代码,我们的想法是[APRW14_FFA68878_Calls]
表中的'Tariff Lookup'值将在第二个SQL查询中用作@tablevalue
。
问题是SQL字符串,而不是正在使用的输出。
请有人帮助使用正确的语法,以便使用实际的表名。
DECLARE @tablevalue nvarchar(max)
DECLARE @sql nvarchar(max)
SET @tablevalue = 'Select [Tariff Lookup] from [DaisyBilling].[dbo].[APRW14_FFA68878_Calls]'
SELECT @sql = 'UPDATE [APRW14_FFA68878_Calls]
SET [APRW14_FFA68878_Calls].[Sell Price] = [test].[dbo].' + @tablevalue +'.[Peak]/60*[APRW14_FFA68878_Calls].[Duration (secs)]
FROM [Test].[dbo].[DaisyRates_May2014]
INNER JOIN [DaisyBilling].[dbo].[APRW14_FFA68878_Calls] on [DaisyBilling].[dbo].[APRW14_FFA68878_Calls].[ChargeCode] = [Test].[dbo].[DaisyRates_May2014].[Chargecode]'
EXEC sp_executesql @sql
PRINT @tablevalue
我也可以这样做,或者我需要一次解析每一行。
非常感谢任何帮助。
由于
答案 0 :(得分:2)
这会解决您的问题吗?
DECLARE @tablevalue nvarchar(max);
DECLARE @sql nvarchar(max);
SELECT @tablevalue = [Tariff Lookup]
FROM [DaisyBilling].[dbo].[APRW14_FFA68878_Calls];
SELECT @sql = N'UPDATE [APRW14_FFA68878_Calls]
SET [APRW14_FFA68878_Calls].[Sell Price] = [test].[dbo].' + @tablevalue +'.[Peak]/60*[APRW14_FFA68878_Calls].[Duration (secs)]
FROM [Test].[dbo].[DaisyRates_May2014]
INNER JOIN [DaisyBilling].[dbo].[APRW14_FFA68878_Calls] on [DaisyBilling].[dbo].[APRW14_FFA68878_Calls].[ChargeCode] = [Test].[dbo].[DaisyRates_May2014].[Chargecode]';
EXEC sp_executesql @sql;
PRINT @tablevalue;