gpt4 book ai didi

sql - 如何在不指定 column_name 的情况下更改所有列?

转载 作者:行者123 更新时间:2023-12-04 21:03:43 24 4
gpt4 key购买 nike

有没有一种方法可以将 alter 语句应用于表中的所有列而无需指定列名?这只会用在我需要清理报告中重复数据的临时表中。

这是我想知道是否可行的示例:

select T1.Column1, T1.Column2, T1.Column3, T2.Column1, T2.Column2
into #templateTable
from Table1 T1
join Table2 T2 on T1.Column1 = T2.Column2

alter table #templateTable
alter column * null

我真正需要的是我的#tempTable 在它最初从中获取数据的列中允许空值,而这些数据以前不允许空值。

最后,我不想浏览和编辑每一列的原因有两个:

  1. 从至少 10 个表中提取了很多列(~50)。
  2. 我不知道哪些允许 null,接下来的两天研究哪些允许 null。

我们将不胜感激。

最佳答案

丑陋的方式,但它至少在 Sql Server Management Studio 中有效(可能用作“字符串”)

select 'alter table ' + table_name + ' alter column '+ column_name +' ' + data_type + 
(case
when character_maximum_length is not null and CHARACTER_MAXIMUM_LENGTH <> -1 then ' (' + CAST(CHARACTER_MAXIMUM_LENGTH as varchar) +')'
when CHARACTER_MAXIMUM_LENGTH = -1 then '(MAX)'
else '' end) + ' null;' from tempdb.information_schema.COLUMNS
where TABLE_NAME = '<YOUR TABLE NAME>'
and IS_NULLABLE='NO';

复制结果,粘贴并执行...

关于sql - 如何在不指定 column_name 的情况下更改所有列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com