Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select * без одного поля  [new]
kostic
Member

Откуда:
Сообщений: 295
есть таблица, в ней 96 полей ...
как правильно написать запрос на SQL "Выбери значения всех полей кроме одного поля", не перчисляя в запросе имена 95 полей ?
Спасибо за ответы
14 фев 05, 15:30    [1319777]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
kostic
есть таблица, в ней 96 полей ...
как правильно написать запрос на SQL "Выбери значения всех полей кроме одного поля", не перчисляя в запросе имена 95 полей ?
Спасибо за ответы

Такого функционала нет.
З.Ы. В QA все поля таблицы можно получить простым drag'n'drop'ом с Object Explorer'а.
14 фев 05, 15:33    [1319784]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
kostic
Member

Откуда:
Сообщений: 295
неужели нет ( ?
14 фев 05, 15:43    [1319827]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
kostic
неужели нет ( ?

Нет. Да этого и не надо.
14 фев 05, 15:45    [1319837]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
Hohol
Member

Откуда:
Сообщений: 92
Если ток View сделать на 95 полей, а оттудова уже делать Select *
Но при изменении структуры исходной таблицы View придется исправлять
14 фев 05, 15:48    [1319849]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
2Hohol
можно сделать и автогенерацию этого вью
14 фев 05, 16:53    [1320124]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
можно привлечь для этих целей зло-порочную sp_execute_sql

Если интересно могу развить тему конкретнее
14 фев 05, 19:43    [1320619]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
(c)VIG
Member

Откуда:
Сообщений: 1507
В развитие темы
declare @ColumnList varchar(1000)
Declare @SQL varchar(1000)
Declare @TableName varchar(128)
set @TableName='orders'
SELECT  @ColumnList = COALESCE(@ColumnList + ', ', '') + column_name 
FROM INFORMATION_SCHEMA.Columns
WHERE  table_name=@TableName and Column_Name<>'ShipVia'

Set @SQL = 'Select ' + @ColumnList + ' from ' + @TableName
Exec (@SQL)
14 фев 05, 21:33    [1320731]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: select * без одного поля  [new]
Apikaster
Member

Откуда:
Сообщений: 51
BusyMan,
открой тему plz sp_execute_sql
а то у меня вся процедура выполняется в переменных варчар которые надо потом выполнить в зависимости от условии
15 сен 11, 17:59    [11283169]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Apikaster
открой тему plz sp_execute_sql


А это ничего, что с момента предложения по открытии темы прошло 6 лет(!)? Или... истинные ценности не стареют?
15 сен 11, 18:16    [11283278]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
dubok
Member

Откуда: Kovrov
Сообщений: 173
Я в свое время делал так: Считывал все поля из таблицы syscolumns и записывал их в строку. Можно сделать выборку какие поля не нужно указывать. А потом EXEC-ом запускал сформированную строку. К сожалению той процедуры под рукой нет, но она простая.
16 сен 11, 11:54    [11286309]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
dubok
Я в свое время делал так: Считывал все поля из таблицы syscolumns и записывал их в строку. Можно сделать выборку какие поля не нужно указывать. А потом EXEC-ом запускал сформированную строку. К сожалению той процедуры под рукой нет, но она простая.
Только вот зачем так делать в принципе, до сих пор осталось не понятным.
16 сен 11, 11:58    [11286371]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
dubok
Member

Откуда: Kovrov
Сообщений: 173
В любом случае вот код, авось кому сгодится (правда для SQL2000 для 2008 вроде таблицы по другому стали называться немного, но суть та же)

declare @sql varchar(4000) set @sql = ''

select @sql = @sql+sc.name+','
from sysobjects so
	INNER JOIN syscolumns sc on so.id = sc.id
where so.name = 'sysfiles'
	and sc.name not like '%groupid%'
set @sql = substring(@sql,1,len(@sql)-1)

set @sql = 'select ' + @sql + ' from sysfiles'
exec(@sql)
16 сен 11, 13:04    [11287076]     Ответить | Цитировать Сообщить модератору
 Re: select * без одного поля  [new]
dubok
Member

Откуда: Kovrov
Сообщений: 173
Гавриленко Сергей Алексеевич
dubok
Я в свое время делал так: Считывал все поля из таблицы syscolumns и записывал их в строку. Можно сделать выборку какие поля не нужно указывать. А потом EXEC-ом запускал сформированную строку. К сожалению той процедуры под рукой нет, но она простая.
Только вот зачем так делать в принципе, до сих пор осталось не понятным.

например можно автоматизировать этот процесс. Например в таблицах наверняка есть служебные поля, и что бы их не выводить в запрос таким способом можно это обойти.
16 сен 11, 13:07    [11287106]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить