根据 SELECT 个结果创建 SQL 个查询

Create a SQL query based on SELECT results

到目前为止,我只习惯了基本的 SQL 语句,但我对如何实现某些任务充满了想法。

希望有人更熟练并且可以提供帮助:

我打算将不同 table 中的列类型从 TEXT/MEMO 更改为 VARCHAR(MAX)。 确实有很多table需要检查,需要单独进行查询。 但是,幸运的是我们有一个 table,它保存了该信息并给出了一个概述,其中 table 有 TEXT/MEMO 列。

这样的 table (WHERE FIELD_TYPE ='M') 的结果寻找例如像那样:

TAB_DESC FIELD_NAME FIELD_TYPE
DADA2 REMARKS M
DADA3 COMMENT M
DADA4 REMARK M

这个结果意味着在我们的系统中,例如Table“TABLE_QQ_DADA2”有一列“REMARKS”,它是 TEXT/MEMO。现在它需要是 VARCHAR(MAX)。

所以基于那个table我会简单地手动输入创建

ALTER TABLE TABLE_QQ_DADA2 ALTER COLUMN REMARKS VARCHAR(MAX)

ALTER TABLE TABLE_QQ_DADA3 ALTER COLUMN COMMENT VARCHAR(MAX)

ALTER TABLE TABLE_QQ_DADA4 ALTER COLUMN REMARK VARCHAR(MAX)

但我对此并不满意,它让我兴奋地创建某种循环,它会根据这样的结果进行 ALTER。 某种预先执行的查询,它用上面列中的结果替换变量。 (我希望你明白我的想法)。

我试图查找一些 String_Agg 函数,但看起来 sql server 2016 还不支持 String_Agg:/ 但我也会接受它,以防万一它更容易。暂时我可以使用支持 String_Agg.

的更新的 sql-server 版本

我会感激每一个想法:)

谢谢

进一步的研究让我得到了答案 post:

T-SQL loop over query results

我之前没有合适的关键字进行适当的研究。 也许管理员可以发表评论?