繁体   English   中英

SQL Server:drop column @variable not working

[英]SQL Server : drop column @variable not working

我正在使用Microsoft SQL Server,似乎我无法解决这个问题。

我有一个表格,我将有一些动态和静态列。

静态列将是产品名称,产品类型,动态数据将是来自正在进行的月份的一些生产数据。

在每个月初,我必须从过去一个月的动态列中删除,并在表的末尾添加一个新月

我的解决方案是将列的名称保存到局部变量中,然后将其添加到alter语句中。 但这不起作用,它一直给我一个错误,如下:

Msg 102,Level 15,State 1,Line 18
'@month_b'附近的语法不正确

我现在将添加查询

declare @month_t char(15) 
declare @month_b char(15) 
declare @sql char(30)

set @month_b = (SELECT  top 1 name 
                FROM sys.columns 
                WHERE object_id = OBJECT_ID('dbo.ct_test') 
                  AND name != 'TTNR' AND name != 'Family' AND name like '%B%'
                ORDER BY name ASC)

set @month_t = (SELECT top 1 name 
                FROM sys.columns 
                WHERE object_id = OBJECT_ID('dbo.ct_test') 
                  AND name != 'TTNR' AND name != 'Family' AND name like '%T%'
                ORDER BY name ASC)

alter table ct_test 
   drop column @month_b

我找不到解决方案,你能帮助我吗?

先感谢您

您需要使用Dynamic Query

Declare @sql nvarchar(max)

set @sql = 'alter table ct_test drop column '+ @month_b

Exec sp_executesql @sql

set @sql = 'alter table ct_test drop column '+ @month_t

Exec sp_executesql @sql

暂无
暂无

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

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