Исправить обработку аргументов в пользовательских сочетаниях клавиш для ускорения клавиатуры SQL Server 2005 Mgmt Studio?

Я давно являюсь поклонником ускорителей клавиатуры с хранимыми процедурами, как описано в Эта статья. Однако, когда мы перешли от SQL 2000 к 2005 и от Query Analyzer к Management Studio, обработка аргументов изменилась. В QA аргументы, разделенные запятыми, автоматически считывались как два отдельных аргумента. В SSMS - по крайней мере, для меня - это читается как один аргумент с запятыми. Точно так же, если я передаю один аргумент с одинарными кавычками, я получаю синтаксическую ошибку если я не избегу кавычек ('->' '). В приведенной выше статье автор подразумевает, что этого не должно быть для SSMS, но даже в ее точном примере аргументы, разделенные запятыми, по-прежнему интерпретируются как один аргумент для каждой установки SSMS, на которой я пробовал (3 из их), работающего с каждой установкой SQL Server, которую я пробовал (4 из них).

Например, введя в SSMS следующее:

Person,4

затем выбрав его и запустив ярлык, я получаю сообщение об ошибке «Недопустимое имя объекта 'Person, 4'.

Кто-нибудь знает, как это исправить? Кто-нибудь вообще пользуется этими ярлыками? Я несколько раз искал эту проблему в Google за последние два года, и мне не повезло.

Обновлено: может быть проблема с конкретной сборкой SSMS. У меня есть следующий пост ниже.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
243
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Я никогда не пробовал это, пока не прочитал ваш вопрос, а затем прочитал статью, на которую вы ссылались, так что относитесь к этому с недоверием.

Тем не менее, я могу заставить процесс работать на моем компьютере с помощью SSMS, а также могу продублировать описанную вами ошибку.

Чтобы заставить это работать должным образом, я создал sproc в базе данных master, назначил сочетание клавиш и перезапустил SSMS. Затем я ввел имя базы данных.schema_name.table_name в одинарных кавычках, за которым следует запятая, а затем целочисленное значение (sproc, который я тестировал, был примером GetRows в статье). Я все еще был подключен к основной базе данных.

Это сработало без происшествий.

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

Возможно, вам нужно добавить имя базы данных и имя схемы перед именем таблицы?

Можете ли вы проверить, какая у вас точная версия / сборка SSMS? Это не решает проблему с моим основным компьютером, но после вашего комментария я смог воспроизвести ваши результаты, используя другой компьютер с другим номером сборки. Я исследую больше прямо сейчас; опубликую полные результаты в редактировании моего вопроса.

Kevin Crumley 17.09.2008 22:44
Ответ принят как подходящий

Предложение Тима не решило мою проблему на моем компьютере для разработки, но убедило меня попробовать еще раз с другого компьютера. Когда я использую SSMS другого ПК для входа в базу данных ПК разработки и пытаюсь в точности то, что описывает Тим, у меня наблюдается то же поведение, которое описывает Тим.

Я также смог повторить проблему синтаксического анализа аргументов на других компьютерах, которые я пробовал в прошлом. Я надеюсь, что Тим может сообщить мне, какая версия и номер сборки в его установке SSMS, потому что моя текущая теория заключается в том, что проблема связана только с конкретной сборкой, которая есть у моих коллег и меня на наших ПК разработчиков - строка версии «Microsoft SQL Server Management Studio 9.00.1399.00». Все наши установки этой версии произошли более года назад, поэтому я не знаю, могу ли я отследить, с какого она диска.

Тот, у которого НЕ возникает проблемы, на самом деле является наш сервер разработки, на котором установлена ​​«Microsoft SQL Server Management Studio 9.00.3042.00». Я не знаю, может ли это быть чем-то, что я могу убрать, исправив или что-то в этом роде, но в настоящее время похоже, что 1399 считывает весь выбор как один аргумент, а 3042 выполняет некоторый предварительный анализ. Я также недавно обнаружил, что когда я передаю строку, содержащую «-» (токен комментария) в 3042, все после «-» игнорируется, в то время как в 1399 все это включается в первый аргумент.

Я также использую SSMS версии 9.00.3042.00, что, вероятно, объясняет, почему она работает на моем компьютере.

Согласен с Тимом. Я только что обновился до SQL Server 05 sp2 и подтверждаю, что эта ошибка исправлена.

Другие вопросы по теме