sql-server - 如何在 SQL Server 中为阈值创建动态过程?
问题描述
我有 40 多个表,基于某个列限制,需要获取一个自然键(这是超出阈值限制的表的自然键)和一个列名、列值超出限制。
示例:表f_revenue
有一个列rev_amt
。自然键列是revnbr
和lastupdated
。如果rev_amt > 3000000
再插入自然键( revnbr, lastupdated
), f_revenue
, rev_amt
, rev_amt 超过3000000
如何在 SQL Server 中创建一个过程来动态滚动 40 多个表并按照上面的示例进行操作?
解决方案
这应该有效。(弹簧从上面的评论登上)
DECLARE @NAME VARCHAR(100)
DECLARE @SQL NVARCHAR(300)
DECLARE CUR CURSOR FOR
SELECT a.NAME
FROM SYS.TABLES a JOIN
SYS.COLUMNS b ON a.object_id=b.object_id
WHERE b.name IN ('nacturalkey', 'f_revenue', 'rev_amt')
OPEN CUR
FETCH NEXT FROM CUR INTO @NAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = 'SELECT nacturalkey, f_revenue, rev_amt FROM '+@Name+' WHERE rev_amt > 3000000'
PRINT @SQL
EXEC Sp_executesql
@SQL
FETCH NEXT FROM CUR INTO @NAME
END
CLOSE CUR
推荐阅读
- python - Tensorflow 数据集 - 地图 json
- snowflake-cloud-data-platform - 如何在 Snowflake 的 INNER SELECT 语句中使用声明的变量?
- javascript - MS Graph 创建 onlineMeeting:“onlinemeeting 不能为空。”
- ios - UITextField 的下边框为 tintColor
- cordova - 在 Ionic (ionic native push / phonegap-plugin-push) 上接收通知附加数据
- xml - 如何在 ASP.net Core 2.1 中生成动态 API
- abap - ABAP CDS 聚合字段根据条件使用 SUM 或 MIN
- react-native - Admob 广告未显示在 React Native Signed Apk 中
- c# - 检查 ASP.NET Core 中是否允许匿名
- python - 将包含熊猫系列的列转换为特征