我想知道在实际给出Varchar变量值之后是否有办法在From语句中使用该变量?我们有存档表,它会循环输出。因此,表可能会丢失几天,当它们重新循环时,它们会将表名更改为当前年份(例如012015之前的012015)。 )因此我的查询可能会引发对象错误,而我是团队中唯一了解简单错误以及如何快速修复愚蠢事情的人。下面是我试图开始工作的解决方案,但我不断收到错误"必须声明表变量@Jan。"我完全理解表变量是什么以及如何使用它,这显然不是我想要做的。有没有办法在From语句中使用varchar变量(或其他类似的变量类型)?代码如下:
Declare @Jan Varchar(40)
IF OBJECT_ID('ColTelephonyArchive.dbo.ACDSkill201401') IS NOT NULL
Begin
Set @Jan = 'ColTelephonyArchive.dbo.ACDSkill201401'
END
IF OBJECT_ID('ColTelephonyArchive.dbo.ACDSkill201501') IS NOT NULL
Begin
Set @Jan = 'ColTelephonyArchive.dbo.ACDSkill201501'
END
IF @Jan IS NULL
Begin
Set @Jan = 'Does.Not.Exist'
END
Select WorkDte, SwitchNbr, SkillNbr,StaffTimeInSec, AvailableTimeInSec, ACDCallTotCt
,AbandonCallTotCt, AbandonCall1Ct, AnswerTimeInSec, ACDTalkTimeInSec,TotAcwTimeInSec, HoldTimeInSec
FROM @Jan
答案 0 :(得分:1)
如果我的问题正确,您需要构建动态查询。所以在你的情况下它将是
DECLARE @qry VARCHAR(511)
SET @qry = 'Select WorkDte, SwitchNbr, SkillNbr,StaffTimeInSec, AvailableTimeInSec, ACDCallTotCt
,AbandonCallTotCt, AbandonCall1Ct, AnswerTimeInSec, ACDTalkTimeInSec,TotAcwTimeInSec, HoldTimeInSec
FROM ' + @Jan
EXEC (@qry)