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
萧十郎
TA贡献1815条经验 获得超13个赞
这使得客户端和数据库之间的合同稳定。每次都是同样的数据 性能、覆盖指标
Columns
慕的地8271018
TA贡献1796条经验 获得超4个赞
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);
添加回答
举报
0/150
提交
取消