有没有实现类似RDBMS的东西SELECT * EXCEPT?我需要的是获取除特定TEXT / BLOB字段以外的所有字段,我只想选择其他所有内容。
SELECT * EXCEPT
几乎每天,我都向同事抱怨有人应该执行此操作……令人讨厌的是它不存在。
编辑: 我了解每个人的关注SELECT *。我知道与此相关的风险SELECT*。但是,至少在我看来,这不会用于任何生产级别代码,甚至开发级别代码;严格用于调试,当我需要轻松查看所有值时。
SELECT *
SELECT*
正如我在一些评论中所述,我的工作严格是命令行商店,通过ssh进行所有操作。这使得很难使用任何gui工具(不允许与数据库的外部连接)等等。
谢谢你的建议。
正如其他人所说,在查询中执行此操作不是一个好主意,因为将来有人更改表结构时,它很容易出现问题。但是,有一种方法可以执行此操作…而且我不敢相信我实际上在建议这样做,而是本着回答ACTUAL问题的精神…
使用动态SQL来执行此操作…这将完成除“ description”列之外的所有列。您可以轻松地将其转换为函数或存储的proc。
declare @sql varchar(8000), @table_id int, @col_id int set @sql = 'select ' select @table_id = id from sysobjects where name = 'MY_Table' select @col_id = min(colid) from syscolumns where id = @table_id and name <> 'description' while (@col_id is not null) begin select @sql = @sql + name from syscolumns where id = @table_id and colid = @col_id select @col_id = min(colid) from syscolumns where id = @table_id and colid > @col_id and name <> 'description' if (@col_id is not null) set @sql = @sql + ',' print @sql end set @sql = @sql + ' from MY_table' exec @sql