Как я могу выполнить просто оператор, мой курсор идет в Studio управления SQL Server?

В конце концов это была глупая проблема маршрутизации, которая соответствовала методу в контроллере, а не попадала в маршрут ServiceStack, как определено в модели интерфейса. Метод, который я оставил при тестировании.

80
задан Wouter 12 September 2016 в 09:33
поделиться

8 ответов

(Немного исправлено - я слишком рано нажал "Enter")

Я начал задумываться над этим, и когда он затронул некоторые довольно сложные концепции SQL, он быстро превратился в следующего монстра. Если возможно, вам лучше адаптировать решение THEn; или, как советуют многие другие, использование кода приложения для заполнения пробелов может быть предпочтительнее.

--  A temp table holding the 30 dates that you want to check
DECLARE @Foo Table (Date  smalldatetime  not null)

--  Populate the table using a common "tally table" methodology (I got this from SQL Server magazine long ago)
;WITH
  L0 AS (SELECT 1 AS C UNION ALL SELECT 1), --2 rows
  L1 AS (SELECT 1 AS C FROM L0 AS A, L0 AS B),--4 rows
  L2 AS (SELECT 1 AS C FROM L1 AS A, L1 AS B),--16 rows
  L3 AS (SELECT 1 AS C FROM L2 AS A, L2 AS B),--256 rows
  Tally AS (SELECT ROW_NUMBER() OVER(ORDER BY C) AS Number FROM L3)
INSERT @Foo (Date)
 select dateadd(dd, datediff(dd, 0, dateadd(dd, -number + 1, getdate())), 0)
 from Tally
 where Number < 31

Шаг 1 - создать временную таблицу, содержащую 30 дат, которые вас интересуют. Эта абстрактная странность представляет собой самый быстрый из известных способов построить таблицу последовательных целых чисел; добавьте еще несколько подзапросов, и вы сможете заполнить миллионы или больше за считанные секунды. Я беру первые 30 и использую dateadd и текущую дату / время, чтобы преобразовать их в даты. Если у вас уже есть "фиксированная" таблица с 1-30, вы можете использовать ее и полностью пропустить CTE (заменив таблицу "Tally"

18
ответ дан 24 November 2019 в 09:59
поделиться

Эта функция присутствует в дополнение SSMSBoost для SSMS (я - разработчик этого дополнения):

Shift-F5 выберет текущий оператор (который позволяет Вам рассматривать то, что Вы в настоящее время собираетесь выполнить). Затем Вы нажимаете F5 и выполняете его.

1
ответ дан 24 November 2019 в 09:59
поделиться

вы всегда можете использовать инструменты командной строки sqlcmd и osql. Я сделал много sybase в командной строке unix, используя функцию-оболочку, которая передала мою командную строку в эквивалент (который, как мне кажется, был isql?). Я использовал vi, так что, может быть, тогда я был просто сумасшедшим; -)

0
ответ дан 24 November 2019 в 09:59
поделиться

Если вас беспокоит необходимость перемещать руку к части мыши, вы можете удерживать Ctrl и одновременно нажимать клавишу со стрелкой вверх или вниз, чтобы сразу выбрать строку.

1
ответ дан 24 November 2019 в 09:59
поделиться

Нажмите Ctrl - E , пока текст выделен.

1
ответ дан 24 November 2019 в 09:59
поделиться

Я не думаю, что это возможно сделать, используя только студию управления. НО вы можете использовать программное обеспечение для сочетания клавиш (например, http://www.autohotkey.com/ ), чтобы записать специальную последовательность и назначить ее для горячей клавиши. В вашем случае вам нужно:

<home><shift-end><F5>

Это выберет текущую строку и выполнит ее.

3
ответ дан 24 November 2019 в 09:59
поделиться

Я использую обходной путь: я комментирую запросы, которые не использую. Вы можете использовать CTRL-K, CTRL-C, чтобы прокомментировать выделенный вами SQL. Используйте CTRL-K, CTRL-U, чтобы раскомментировать. Таким образом, вы можете прокомментировать все остальные запросы и выполнить интересующий вас запрос с помощью F5.

4
ответ дан 24 November 2019 в 09:59
поделиться

Примечание: как ни странно, даже бесплатная Toad для SQL Server не позволяет запускать только оператор под курсором.

Действительно раздражает, что TOAD не выполняет то, что обещает:

Из справки TOAD: [F9 для выполнения] часть оператора, которая может содержать один или больше заявлений. Вы можете выбрать часть инструкции, поместив курсор внутри инструкции или рядом с ней, или выбрав инструкцию. Примечание. Жаба считает «смежными» все операторы (включая комментарии), отделенные от курсора или друг от друга менее чем двумя пустыми строками. Если во время выполнения оператора возникает ошибка, отображается сообщение об ошибке, позволяющее либо проигнорировать ошибку и продолжить, либо прервать выполнение.

Я пробовал это миллион раз, но он просто выполняет весь сценарий. Я хотел найти его в группе поддержки пользователей (toadss (at) yahoogroups.com), но у yahoo самая дурацкая поисковая система! Он даже не может найти ключевое слово «жаба» в почтовой группе «жаба», DOH!

Я считаю, что TOAD - лучший инструмент для запросов, но отсутствие этой функции меня тоже очень раздражает.

ОБНОВЛЕНИЕ: РЕШЕНИЕ НАЙДЕНО! Я задал этот вопрос в почтовой группе toadss и получил ответ. В отличие от Oracle, вы должны разделять операторы в SQL Server ключевым словом GO после каждого оператора. Только если вы сделаете это, кнопка F9 будет работать должным образом, выполняя текущий оператор.

6
ответ дан 24 November 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: