gpt4 book ai didi

SQL 按列索引更新

转载 作者:行者123 更新时间:2023-12-05 03:15:06 25 4
gpt4 key购买 nike

我正在使用 SQL Server,并且我有一个包含 ProductID、ProductName、ProductSalePrice、ProductBuyPrice 列的 Products(待定还有更多的列。)

通常你可以像这样更新数据库:

Update Products 
Set ProductSalePrice = 54
where ProductID = 12947

但我想要的是,使用带有列索引而不是列名的更新命令。像这样:

Update Products 
Set "Third Column" = 54
where ProductID = 12947

如何按列索引更新表?有什么建议吗?

编辑: SQL Server 似乎没有用于查询的自然列顺序。我错误地猜测了我的方法。我想有一个选项,就像上面的代码一样,但没有在数据库上工作。

编辑 2: 我接受了下面的答案,因为如果不在数据库上工作似乎是不可能的。如果出现新方法,我可能会更改已接受的答案。谢谢。

最佳答案

如果您真的需要这个,您可以使用INFORMATION_SCHEMA 表来查找列及其顺序(使用ORDINAL_POSITION)。然后使用更新语句构建动态查询。

declare @columnNum int
SET @columnNum = 3

declare @column nvarchar(100)

set @column =
(
SELECT TOP 1
COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND ORDINAL_POSITION = @columnNum
)

declare @sql nvarchar(500)

set @sql = 'Update Products Set ' + @column + ' = 54 where ProductID = 12947'

sp_executesql @sql

关于SQL 按列索引更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766588/

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