Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
906
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Можно ли логически переупорядочить столбцы в таблице?
Если я добавляю столбец в таблицу в Microsoft SQL Server, могу ли я контролировать, где этот столбец логически отображается в запросах?
Я не хочу возиться с физическим расположением столбцов на диске, но я хотел бы логически сгруппировать столбцы вместе, когда это возможно, чтобы инструменты, такие как SQL Server Management Studio, отображали содержимое таблицы удобным способом.
Я знаю, что могу сделать это с помощью SQL Management Studio, перейдя в их режим "design" для таблиц и перетаскивая порядок столбцов вокруг, но я хотел бы иметь возможность сделать это в raw SQL, чтобы я мог выполнять упорядочивание по сценарию из командной строки.
Вы не можете сделать это программно (безопасным способом), не создав новую таблицу.
Когда вы совершаете переупорядочение, Enterprise Manager создает новую таблицу, перемещает данные, а затем удаляет старую таблицу и переименовывает новую таблицу в существующее имя.
Если вы хотите, чтобы ваши столбцы располагались в определенном порядке / группировке без изменения их физического порядка, вы можете создать представление, которое может быть любым по вашему желанию.
Я думаю, что всем здесь не хватает того, что, хотя не всем приходится иметь дело с 10-ю, 20-ю или 1000-ю экземплярами одной и той же программной системы, установленной по всей стране и миру ... те из нас, кто проектирует коммерчески продаваемое программное обеспечение, делают это. В результате мы расширяем системы с течением времени, расширяем таблицы, добавляя поля по мере необходимости новых возможностей, и поскольку эти поля идентифицированы, они действительно принадлежат к существующей таблице , и как таковые, в течение десятилетия расширения, роста, добавления полей и т. д. В таблицы .... а затем приходится работать с этими таблицами от проектирования до поддержки, иногда копаясь в необработанных данных/устраняя неполадки для отладки новых функциональных ошибок .... это невероятно усугубляет отсутствие первичной информации, которую вы хотите видеть в первой горстке полей, когда у вас могут быть таблицы с 30-40-50 или даже 90 полями и да в строго нормализованной базе данных.
Я часто хотел бы сделать это именно по этой причине. Но если не делать в точности то, что делает SQL, то можно построить сценарий создания для новой таблицы так, как я хочу, записать в него вставку, затем удалить все существующие ограничения, отношения, ключи, индекс и т. д. и т. д. из существующей таблицы и переименовать таблицу "new" обратно в старое имя, а затем прочитать все эти ключи, отношения, индекс и т. д....
Это не только утомительно, но и отнимает много времени ... еще через пять лет все должно будет повториться ....
Это так близко к тому, чтобы стоить того огромного количества работы, однако суть в том ... это будет не последний раз, когда мы нуждаемся в этой способности, так как наши системы будут продолжать расти, расширяться и получать поля в сумасшедшем порядке, обусловленном потребностями/дизайнерскими дополнениями.
Большинство разработчиков думают с точки зрения единой системы, которая обслуживает одну компанию или очень специфический рынок жестких ящиков.
"off-the-shelf", но значительно прогрессивные дизайнеры и лидеры развития в своем рыночном пространстве всегда будут иметь дело с этой проблемой, и over.....would любят творческое решение, если оно у кого-то есть. Это может легко сэкономить моей компании десяток часов в неделю, просто не нужно прокручивать или запоминать, где находится поле "that" в таблице исходных данных....
Если я правильно понял ваш вопрос, вы хотите повлиять на то, какие столбцы возвращаются в существующих запросах первыми, вторыми, третьими и т. д., верно?
Если все ваши запросы написаны с помощью SELECT * FROM TABLE , то они будут отображаться в выходных данных так же, как и в SQL.
Если ваши запросы написаны с SELECT Field1, Field2 FROM TABLE -то порядок их выкладки в SQL не имеет значения.
Когда Management Studio делает это, она создает временную таблицу, копирует все подряд, удаляет исходную таблицу и переименовывает временную таблицу. Нет простого эквивалентного утверждения T-SQL.
Если вам это не нравится, вы всегда можете создать представление таблицы со столбцами в нужном порядке и использовать его?
Правка: избили!
Есть один способ, но он только временно для самого запроса. Например,
Допустим, у вас есть 5 столов.
Таблица называется T_Testing
FirstName, LastName, PhoneNumber, Email и Member_ID
вы хотите, чтобы он перечислил их ID, затем фамилию, затем FirstName, затем телефон, а затем Email.
Вы можете сделать это в соответствии с выбором.
Select Member_ID, LastName, FirstName, PhoneNumber, Email
From T_Testing
Кроме того, если вы просто хотите, чтобы LastName по какой-то причине отображался перед первым именем, вы можете сделать это также следующим образом:
Select LastName, *
From T_Testing
Единственное, что вы хотите быть уверены, что Вы делаете, это то, что функция OrderBy или Where должна быть обозначена как Table.Column, если вы собираетесь использовать Where или OrderBy
Пример:
Select LastName, *
From T_Testing
Order By T_Testing.LastName Desc
Я надеюсь, что это поможет, я понял это, потому что мне нужно было сделать это самому.
- Запишите существующую таблицу в окно запроса.
- Запустите этот сценарий для тестовой базы данных (удалите инструкцию Use)
- Используйте SSMS для внесения необходимых изменений в столбец
- Нажмите кнопку Создать сценарий изменения (самый левый и самый нижний значок на экране).
панель кнопок, по умолчанию)
- Используйте этот скрипт против вашей реальной таблицы
Все, что на самом деле делает скрипт, это создает вторую таблицу таблицы с нужными порядками столбцов, копирует в нее все ваши данные, отбрасывает исходную таблицу и затем переименовывает вторичную таблицу, чтобы занять ее место. Это действительно спасает вас от написания его самостоятельно, хотя если вы хотите сценарий развертывания.
Это можно сделать с помощью SQL, непосредственно изменив системные таблицы. Например, посмотрите здесь:
Alter table - Добавить новый столбец между ними
Однако я бы не рекомендовал играть с системными таблицами, если это не является абсолютно необходимым.
Невозможно изменить порядок столбцов, не создав заново всю таблицу. Если у вас есть только несколько экземпляров базы данных, вы можете использовать для этого SSMS (выберите таблицу и нажмите "design").
Если у вас слишком много экземпляров для ручного процесса, вы должны попробовать этот скрипт: https://github.com/Epaminaidos/reorder-columns