SQL使用SELECT *排除列[[除了columnA] FROM tableA?
我们都知道要从表中选择所有列,我们可以使用
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列表,以实现您的目标之一
在SQL(SQL Server)中执行此操作的自动方法是:
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);
链接地址: http://www.djcxy.com/p/93837.html
上一篇: SQL exclude a column using SELECT * [except columnA] FROM tableA?