sql - 具有可变列名的动态更新语句

标签 sql sql-server tsql

我们希望在多个 SQL Server 数据库中进行更新,将某个表中的所有 NULL 值更改为空字符串而不是 NULL。我们可能会在数百个数据库中执行此操作。表名始终相同,但列名根据前端应用程序的配置方式而变化(不要判断......我没有创建这个系统)。

有没有办法在不提前知道列名称的情况下对所有这些列进行更新?

最佳答案

您可以在动态sql中传递列名:

declare @sql nvarchar (1000);
set @sql = N'update table set ' + @column_name + '= ''''';

exec sp_executesql @sql;

关于sql - 具有可变列名的动态更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846743/

相关文章:

sql - 在现有表中添加 bool 列

sql - TSQL - 一些 |为什么它们相同但名称不同?

SQL SELECT 每月的第一天和最后一天。

SQL Server Case 语句和聚合函数

sql-server - 无法解决等于操作中 "SQL_Latin1_General_CP1_CI_AS"和 "Latin1_General_CI_AS"之间的排序规则冲突

sql-server - 有没有办法让 SQL 变量保持常量?

mysql - 当2个表的列名相同时如何获取2个表的数据

mysql - 我如何编写这个涉及连接的简单 sql 语句?

sql - Postgres 不接受列名前的表别名

php - HTML 表的并行 MySQL 查询 - WHILE(x 或 y)?