Новое поле в таблице сделать первым
новое поле в спискуе становится последним.
Как сделать что бы оно было первое?
СУБД MS SQL
To add a column at a specific position within a table row, use FIRST or AFTER col_name. The default is to add the column last.
Смотрел я в доки, куда ж без них то...
Только в доках по MS SQL Serverу такого нету :(
И вообще вопрос, есь ли такое и мелкомягкого сервера?
но когда полез в Дюбуа там мгновенно нашёл ;)
но вот только у меня возник вопрос - а нафига???
какая разница каким по счёту у тебя будет это поле???
Только в доках по MS SQL Serverу такого нету :(
И вообще вопрос, есь ли такое и мелкомягкого сервера?
упсс... вот поэтому лучше писать название СУБД в топике большими буквами :)
[QUOTE=Valiant]
но вот только у меня возник вопрос - а нафига???
какая разница каким по счёту у тебя будет это поле???[/QUOTE]
порядок столбцов имеет значение, например, при использовании составных индексов.
например: имеем индекс ( A, B)
при запросах
WHERE A = 'xyz'
WHERE A = 'xyz' and B='abc'
индекс использоваться будет, а вот при запросе
WHERE B='abc'
нет.
WHERE A = 'xyz'
WHERE A = 'xyz' and B='abc'
индекс использоваться будет, а вот при запросе
WHERE B='abc'
нет.
Возможно... спорить не буду... с составными индексами не экспериментировал
спасибо за наводку сейчас займусь
порядок столбцов имеет значение, например, при использовании составных индексов.
например: имеем индекс ( A, B)
при запросах
WHERE A = 'xyz'
WHERE A = 'xyz' and B='abc'
индекс использоваться будет, а вот при запросе
WHERE B='abc'
нет.
Ну с индексами вопросов нет, а вот практический смысл порядка колонки в таблице все же неясен. Разве что, чтобы select * ... показывал его первым ))
Есть некий клиент, в который уже "вшиты" запросы типа SELECT *, а затем по этим запросам он работает с данными, и берет столбец не по имени, а по порядковому индексу, т.е. в field[0] у меня все время должно быть ID (автоинкриментное)
[QUOTE=Valiant]
но когда полез в Дюбуа там мгновенно нашёл
[/QUOTE]
Это кто такой? помоги ссцылой
ЗЫ: а тип СУБД я сразу указал и большими буквами, правда снизу
Это кто такой? помоги ссцылой
года 1.5 назад купил книгу по MySQL4
Шикарное описание самой БД и языка SQL
На мой взгляд лучшая книга!
автор: Поль Дюбуа
издательсво: ИД "Вильямс"
название: MySQL Полное и исчерпывающее руководство по применению и администрированию баз данных MySQL4, а так же программированию приложений (Второе издание)
Вот здесь можешь посмотреть и скачать книги по мускулю.
конкретно эта книга здесь
To oxotnik333: К сожалению в MS SQL не силен. Ну если даже и нет такой прямой возможности, всегда есть возможность пересоздания таблицы с правильным порядком следования столбцов (и перезаливкой данных, если необходимо).
P.S. А вообще, за такой дизайн клиентской части руки бы поотрывать))
2Ora-cool: ну он же просил разъяснить кто такой Дюбуа и с чем его едят.
Собственно кислое:
поняв что автору это действие требуется выполнить всего один раз, а не выполнять его систематически, предлагаю поставить SQL Server Management Studio (распространяется бесплатно) и там уже поработать со структурой таблицы, заодно разобраться с трейсами (как делает перестановку столбцов эта мулина).
Согласен не очень элегантно, но зато очень действенно все мои инсинуации по перестановке столбца "вручную" окончились полным крахом (странным образом рухнула БД =) она была тренировочная) в причинах стараюсь разобраться, о результатах обязательно напишу.
В результате сначала создаю таблицу в нужном формате, а затем туда данные сливаю.
В результате сначала создаю таблицу в нужном формате, а затем туда данные сливаю.
Если пользоваться только T-SQL то сделать можно только через пересоздание таблицы. И это правильно.
Потому что, порядок полей, так же как и строк определяется ЗАПРОСОМ.
Если вам нужен определенный порядок полей - создавайте определенный запрос - это может быть например View и работайте с ним. Не работайте напрямую с таблицами из приложения. Никогда.
порядок столбцов имеет значение, например, при использовании составных индексов.
например: имеем индекс ( A, B)
Данное утверверждение верно но никаго отношения к порядку столбцов в таблице не имеет :) и говорит о том, что автор его просто немножко перепутал что-то.
что-то я не понял. как это "оно верно" но "к порядку столбцов отношения не имеет"? а?
Что Вы имеете ввиду структуру или данные???
Если структуру, то я с Вами полностью согласен.
А вот если вы имеете ввиду данные... здесь буду вынужден не согласиться.
Кэширование - не панацея
А вот если вы имеете ввиду данные... здесь буду вынужден не согласиться.
Кэширование - не панацея
Имелось ввиду работа с таблицами (данными в БД) только средствами SQL
Твой пример верен в том что, с приведенными параметрами индекс использоваться не будет.
Но какое отношение к порядку столбцов в таблице? Т.е. если составной индекс будет наложен на поля следующие не по порядку - и при этом условие выборки будет ему соответсвовать - ты хочешь сказать что индекс все равно не задействуеться? ИМХО это не верно. Сегодня, будет время, специально проверю - как будет строиться план запроса в зависимости от расположения полей в таблице . Я утверждаю что в обеих случаях - в независимости от физической последовательности полей в таблице - индекс будет использоваться.
Или я не прав?
Если структуру, то я с Вами полностью согласен.
А вот если вы имеете ввиду данные... здесь буду вынужден не согласиться.
Кэширование - не панацея
Утверждение из разряда "вода не земля", "дерево не железо", "правда не ложь" и т.д. - называються трюизмом - по русски банальностью. Тем более, где в моем посте написано что либо о кешировании вообще? Тем более где вы вычитали там - "всегда используйте кеширование - это панацея"? Вам дать ссылку на определение термина "кеширование"?
Термин "кеширование" мне и без ваших ссылок ясен.
Потому я и переспросил с чем вы хотите работать?
Ваша фраза "Не работайте напрямую с таблицами из приложения. Никогда."
можно было расценить как "РАБОТАЙТЕ С КЭШЕМ".
Если вы ещё раз внимательно перечитаете и свой и мой пост вам станет понятно всё.
Нет, вы не подумайте, я не настаиваю может просто я что то не так понял =)
Можно идиотский вопрос?
А как ещё можно?
Ваша фраза "Не работайте напрямую с таблицами из приложения. Никогда."
можно было расценить как "РАБОТАЙТЕ С КЭШЕМ".
Если вы ещё раз внимательно перечитаете и свой и мой пост вам станет понятно всё.
Мда. Как говориться "но коммент".
Может все же дать ссылку? :) и заодно на литературу для начинающих? по БД?
Или опыт работы с базами данных ограничен только MySQL? Тогда в принципе непонимание отчасти простительно, в связи с некоторыми особенностями данного сервера.
Можно идиотский вопрос?
А как ещё можно?
можно через СОМ(OLE)-объекты, можно через низкоуровневые АПИ сервера.
Может все же дать ссылку? :) и заодно на литературу для начинающих? по БД?
Или опыт работы с базами данных ограничен только MySQL? Тогда в принципе непонимание отчасти простительно, в связи с некоторыми особенностями данного сервера.
Нет спасибо ссылки вы себе оставьте =) У меня и так их предостаточно.
Отчасти и вы правы опыт работы с БД в основе своей это MySQL, MSSQL это было пожелание босса.
можно через СОМ(OLE)-объекты, можно через низкоуровневые АПИ сервера.
низкоуровневые апи :) ну ну и с каким это вы сервером собрались работать?
А как ещё можно?
В билдере и дельфи (и в других ИДЕ возможно тоже) есть компонент TTable реализующий прямой доступ к таблице. При поможи методов типа Insert(), Edit() и тому подобных позволяет править таблицы "не отходя от кассы".
ИМХО это большое зло, доставшееся от файловых БД.
низкоуровневые апи :) ну ну и с каким это вы сервером собрались работать?
вопроса не понял.