根据 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
我之前没有合适的关键字进行适当的研究。
也许管理员可以发表评论?
到目前为止,我只习惯了基本的 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
我之前没有合适的关键字进行适当的研究。 也许管理员可以发表评论?