咱们都知道要从表中选择全部列,咱们可使用 数据库
SELECT * FROM tableA
有没有一种方法能够在不指定全部列的状况下从表中排除列? 编辑器
SELECT * [except columnA] FROM tableA
我知道的惟一方法是手动指定全部列,并排除不须要的列。 这确实很耗时,所以我正在寻找节省时间和精力的方法,而且在表包含更多/更少列的状况下,还能够进行未来的维护。 this
若是您不想手动输入每一个列名,则能够经过右键单击表或在SSMS中 查看来使用“ Script Table As
,以下所示: spa
而后,您将在“ 新建查询编辑器”窗口中得到整个选择查询,而后删除不须要的列,以下所示: code
完成 图片
我赞成全部人的观点...可是,若是我要作这样的事情,我可能会这样: ip
/* 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
在SSMS中, IntelliSense和Aliasing是一种更简单的方法。 尝试这个 开发
若是咱们谈论的是过程,则可使用此技巧来生成一个新查询并当即执行 : it
SELECT LISTAGG((column_name), ', ') WITHIN GROUP (ORDER BY column_id) INTO var_list_of_columns FROM ALL_TAB_COLUMNS WHERE table_name = 'PUT_HERE_YOUR_TABLE' AND column_name NOT IN ('dont_want_this_column','neither_this_one','etc_column');
我知道这有点老了,但我刚遇到一样的问题,正在寻找答案。 而后,我让一位高级开发人员向我展现了一个很是简单的技巧。 io
若是使用的是Management Studio查询编辑器,请展开数据库,而后展开要从中选择的表,以即可以看到columns文件夹。
在您的select语句中,只需突出显示上方引用的列文件夹并将其拖放到查询窗口中便可。 它将粘贴表的全部列,而后只需从列列表中删除标识列便可。