簡體   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