简体   繁体   English

动态表名称随获取日期更改的SQL变量

[英]SQL variable for dynamic Table name change with get date

I have the following sql which I can't get working, there is a table which gets created daily with the format of YYYYMMDD at the end of the table name each day. 我有以下无法使用的sql,每天都有一个表每天以YYYYMMDD的格式创建。 Here is the SQL: 这是SQL:

    DECLARE @var INT



    SET @var = CAST(CONVERT(NVARCHAR(8),GETDATE()-1,112) AS int)

    SELECT @VAR


    SELECT
    CASE WHEN LEN("AssociatedData") = 0 OR "AssociatedData" IS NULL THEN '*Unknown*' ELSE AssociatedData END AS AssociatedData,
    "CallEvent",
    CASE WHEN LEN("CallEventName") = 0 OR "CallEventName" IS NULL THEN '*Unknown*' ELSE CallEventName END AS CallEventName,
    "CallID",
    CASE WHEN LEN("Destination") = 0 OR "Destination" IS NULL THEN '*Unknown*' ELSE Destination END AS Destination,
    CASE WHEN LEN("EventData") = 0 OR "EventData" IS NULL THEN '*Unknown*' ELSE EventData END AS EventData,
    "FirstEventTimestamp",
    "SequenceNumber",
    "Source",
    CASE WHEN LEN("TelsetLoginID") = 0 OR "TelsetLoginID" IS NULL THEN '*Unknown*' ELSE TelsetLoginID END AS TelsetLoginID,
    "Time",
    "Timestamp"
    FROM concat(eCallByCallStat,@var)

I need to get this working as a SQL query rather than a StoredProcedure. 我需要使它作为SQL查询而不是StoredProcedure工作。

Is this possible at all to append the datekey straight after the tablename. 是否有可能在表名之后直接添加日期键。

Thank you 谢谢

DECLARE @tsql VARCHAR(MAX)
DECLARE @var DATE = GETDATE() - 1

SET @tsql = '
SELECT
  [AssociatedData] = CASE WHEN LEN( [AssociatedData] ) > 0 THEN [AssociatedData] ELSE ''*Unknown*'' END,
  [CallEvent],
  [CallEventName] = CASE WHEN LEN( [CallEventName] ) > 0 THEN [CallEventName] ELSE ''*Unknown*'' END,
  [CallID],
  [Destination] = CASE WHEN LEN( [Destination] ) > 0 THEN [Destination] ELSE ''*Unknown*'' END,
  [EventData] = CASE WHEN LEN( [EventData] ) > 0 THEN [EventData] ELSE ''*Unknown*'' END,
  [FirstEventTimestamp],
  [SequenceNumber],
  [Source],
  [TelsetLoginID] = CASE WHEN LEN( [TelsetLoginID] ) > 0 THEN [TelsetLoginID] ELSE ''*Unknown*'' END,
  [Time],
  [Timestamp]
FROM 
  ' + CONCAT( 'eCallByCallStat', CONVERT( VARCHAR, @var, 112 ) )

PRINT @tsql
EXEC sp_executesql @tsql

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM