我们都知道要从表中选择所有列,我们可以使用
SELECT * FROM tableA
有没有一种方法可以在不指定所有列的情况下从表中排除列?
SELECT * [except columnA] FROM tableA
我知道的唯一方法是手动指定所有列,并排除不需要的列。这确实很耗时,因此我正在寻找节省时间和精力的方法,并且在表具有更多 / 更少列的情况下,还可以进行将来的维护。
您可以这样尝试:
/* Get the data into a temp table */
SELECT * INTO #TempTable
FROM YourTable
/* Drop the columns that are not needed */
ALTER TABLE #TempTable
DROP COLUMN ColumnToDrop
/* Get results and drop temp table */
SELECT * FROM #TempTable
DROP TABLE #TempTable
不。
维护轻量级的最佳实践是仅指定必需的列。
至少有两个原因:
编辑(2011 年 7 月):
如果从对象资源管理器中拖动Columns
节点,则会为您在 “查询” 窗口中放置一个 CSV 列列表,从而实现您的目标之一
如果您不想手动输入每个列名,则可以通过右键单击表或在SSMS 中查看Script Table As
,如下所示:
然后,您将在 “新建查询编辑器” 窗口中获得整个选择查询,然后删除不需要的列,如下所示:
完毕