如何为表头插入变量类型

时间:2017-07-27 02:09:49

标签: sql sql-server-2014

if object_id('tempdb..#mysql_cte1') is not null 
     drop table #mysql_cte1

create table #mysql_cte1
(
     DateTime datetime, ' + 
     quotename(Concat(@product, ' ', 'TickerID')) + ' int, ' +
     quotename(Concat(@product2, ' ', 'TickerID')) + ' int,' + 
     quotename(Concat(@product, ' ', 'Bid')) + ' float, ' + 
     quotename(Concat(@product, ' ', 'Ask')) + ',' + 
     quotename(Concat(@product2, ' ', 'Bid')) + ' float,' +
     quotename(Concat(@product2, ' ', 'Ask')) + ' float 
)

我有上面的内容,我希望将标题命名为:

DateTime|Coke TickerID |Coal TickerID |Coke Bid |Coke Ask |Coal Bid |Coal Ask

但是当我使用上面的代码时,我会收到错误:

  

'+ quotename附近的语法错误(Concat(@ product,'。

1 个答案:

答案 0 :(得分:1)

以下是查询:我修复了几件事:

DECLARE @product varchar(100) = 'COKE'
DECLARE @product2 varchar(100) = 'Coal'
DECLARE @mysql varchar(max)
set @mysql = 'if object_id(''tempdb..#mysql_cte1'') is not null drop table #mysql_cte1 
          create table #mysql_cte1(DateTime datetime,'+quotename(Concat(@product, ' ', 'TickerID'))+' int,'+quotename(Concat(@product2, ' ', 'TickerID'))+' int,'+quotename(Concat(@product, ' ', 'Bid'))+' float,'+quotename(Concat(@product, ' ', 'Ask'))+' float,'+quotename(Concat(@product2, ' ', 'Bid'))+' float,'+quotename(Concat(@product2, ' ', 'Ask'))+' float) 
          SELECT * FROM #mysql_cte1'
           exec(@mysql)

请注意,对于名称为&#34的列;询问"我已将float添加为类型,您可以根据需要更改上述查询