亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL從表A中排除使用select*[除Columna]的列?

SQL從表A中排除使用select*[除Columna]的列?

互換的青春 2019-06-13 17:23:31
SQL從表A中排除使用select*[除Columna]的列?我們都知道要從一個表中選擇所有列,我們可以使用SELECT * FROM tableA是否有一種不指定所有列而將列從表中排除的方法?SELECT * [except columnA] FROM tableA我知道的唯一方法是手動指定所有列并排除不需要的列。這真的很費時,所以我正在尋找節省時間和精力的方法,以及如果表中有更多/更少列的話,將來的維護。謝謝!
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

我同意每個人.。但如果我要做這樣的事,我可能會這樣做:


/* 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


查看完整回答
反對 回復 2019-06-13
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

沒有。

維護-輕型最佳實踐是只指定所需的列。

至少有兩個理由:

  • 這使得客戶端和數據庫之間的合同穩定。每次都是同樣的數據
  • 性能、覆蓋指標

編輯(2011年7月):

如果從對象資源管理器拖動Columns節點,它會在查詢窗口中為您放置一個csv列表,以實現您的目標之一。


查看完整回答
反對 回復 2019-06-13
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

在SQL(SQLServer)中實現此操作的自動化方法是:

declare @cols varchar(max), @query varchar(max);SELECT  @cols = STUFF    (
        ( 
            SELECT DISTINCT '], [' + name            FROM sys.columns            where object_id = (
                select top 1 object_id from sys.objects                where name = 'MyTable'
            )
            and name not in ('ColumnIDontWant1', 'ColumnIDontWant2')
            FOR XML PATH('')
        ), 1, 2, ''
    ) + ']';SELECT @query = 'select ' + @cols + ' from MyTable';  EXEC (@query);


查看完整回答
反對 回復 2019-06-13
  • 3 回答
  • 0 關注
  • 1552 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號