gpt4 book ai didi

SQL Server : drop column @variable not working

转载 作者:行者123 更新时间:2023-12-03 00:12:04 24 4
gpt4 key购买 nike

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

我有一个表,上面有一些动态和静态列。

静态列是产品名称、产品类型,动态数据是当前月份的一些生产数据。

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

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

Msg 102, Level 15, State 1, Line 18
Incorrect syntax near '@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

我找不到解决办法,你能帮我吗?

提前谢谢

最佳答案

您需要使用动态查询

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

关于SQL Server : drop column @variable not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com