动态选择条件所在的列

问题描述

我是动态SQL编程的新手。有一组具有不同模式(行和值)的表,它们的记录计数是通过循环动态获取的。但是,软删除的记录不应成为记录计数的一部分。每个表都有一个列,表示在Table_Name_IS_DELETED中的软删除,例如TB1_IS_DELETED。请帮助我动态更新where条件中的列名。

我为计数而编写的代码

SET @Query = 'SELECT @K  = COUNT(*) FROM ['+@DB_Source+'].['+@Table_Schema+'].['+@Table_Name+'] x WITH (NOLOCK)

    EXEC sp_executesql @Query,N'@K INT OUTPUT',@K=@K OUTPUT;

现在动态查询中应该有一个 WHERE 条件,该条件应该类似于“ TB1_IS_DELETED = 1”,并且表名(TB1)应该相应地更新。

感谢您的帮助。 :)

解决方法

赞:

SET @Query = '
SELECT @K = COUNT(*) 
FROM '+quotename(@DB_Source)+'.'+quotename(@Table_Schema)+'.'+quotename(@Table_Name)+' x WITH (NOLOCK)
where '+quotename(@Column_Name)+'=1
' 

EXEC sp_executesql @Query,N'@K INT OUTPUT',@K=@K OUTPUT;

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...