咱們都知道要從表中選擇全部列,咱們可使用 數據庫
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語句中,只需突出顯示上方引用的列文件夾並將其拖放到查詢窗口中便可。 它將粘貼表的全部列,而後只需從列列表中刪除標識列便可。