Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Вставить GUID: в редакторе кода, открываем контекстное меню - там пункт "Вставить новый GUID", чтобы оно само генерило гуид и вставляло его на место курсора. Сейчас приходится руками селектить newid(), копировать результат и вставлять его на место курсора - иногда это вымораживает.
20 июн 12, 17:25    [12747692]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Заменить GUID: в редакторе кода, если курсор стоит на чем-то сильно похожем на GUID, открываем контекстное меню - там пункт "Заменить на новый GUID", чтобы оно само генерило гуид и заменяло уже написанный гуид новым.
20 июн 12, 17:27    [12747714]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm
Обертки кода: в редакторе кода выделяем текст, далее контекст на выделенном - там меню а'ля "обернуть выделенное транзакцией". В результате выделенное оборачивается begin tran'ом + commit'ом (а лучше rollback'ом по дефолту). Мелочь, но приятно. Чтобы обороты не забивать в приклад гвоздями - можно реализовать шаблоны оберток.

сделаем. Это не сложно и полезно. Согласен. У нас что-то подобное тому уже есть в списке тасков: "embed code" -переформатировать для вставки в строку и обратно.
select 'test' -> 'select ''test'''
20 июн 12, 17:28    [12747726]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
[quot RubinDm]
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Замена GUIDов в копипасте: в редакторе кода, после Copy/Paste, если вставленный кусок кода содержит в себе куски сильно похожие на гуиды - на автомате открыть диалог аля "желаете заменить GUIDы новыми?". Если да - то заменить.
20 июн 12, 17:31    [12747755]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Заменить GUID: в редакторе кода, если курсор стоит на чем-то сильно похожем на GUID, открываем контекстное меню - там пункт "Заменить на новый GUID", чтобы оно само генерило гуид и заменяло уже написанный гуид новым.


Эта функция мне кажется слишком специфической. Что вы уже сейчас можете сделать - это добавить в SSMSBoost-е такой Autoreplacement:
"selg" -> "select newid()"
Каждый раз как будете писать "selg" он будет заменяться на select newid(), остаётся только
Shift-Pos1 (выделить всё до начала строки) и F5. Занимает всё ровно 1 сек :)
20 июн 12, 17:35    [12747798]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Обертки для хранимых процедур: часто приходится оборачивать уже готовые процедуры в новые с такими же параметрами (1в1) с той лишь целью, чтобы вложенная процедура отрабатывала в транзакции или в save-point'е, который открывается процедурой-оберткой. Было бы нереально круто получить инструмент для генерации скриптов создания таких оберток на автомате. В качестве параметров автомату должны передаваться: 1 - имя оборачиваемой процедуры, 2 - режим обертки:
20 июн 12, 17:37    [12747819]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm
AndreiRantsevich
Вообще если кому-то что-то в ССМС мешает нормально работать, то пишите сюда.
Обертки для хранимых процедур: часто приходится оборачивать уже готовые процедуры в новые с такими же параметрами (1в1) с той лишь целью, чтобы вложенная процедура отрабатывала в транзакции или в save-point'е, который открывается процедурой-оберткой. Было бы нереально круто получить инструмент для генерации скриптов создания таких оберток на автомате. В качестве параметров автомату должны передаваться: 1 - имя оборачиваемой процедуры, 2 - режим обертки:

Да - это класс. Мне даже кажется что у нас в работе то что вам нужно. Пришлите или по почте, или киньте сюда список "типов" и примеры для них. Может так случится, что будет готово через 2-3 недели, т.к. как раз сейчас работаем над похожей функцией. Мы ей просто обобщим.
(адрес смотрите на нашем сайте - суппорт - это тоже я :) )
20 июн 12, 17:42    [12747857]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich
RubinDm
пропущено...
Заменить GUID: в редакторе кода, если курсор стоит на чем-то сильно похожем на GUID, открываем контекстное меню - там пункт "Заменить на новый GUID", чтобы оно само генерило гуид и заменяло уже написанный гуид новым.


Эта функция мне кажется слишком специфической. Что вы уже сейчас можете сделать - это добавить в SSMSBoost-е такой Autoreplacement:
"selg" -> "select newid()"
Каждый раз как будете писать "selg" он будет заменяться на select newid(), остаётся только
Shift-Pos1 (выделить всё до начала строки) и F5. Занимает всё ровно 1 сек :)

после F5 надо еще пойти в резалт, копировать его, потом в код, вставить... бр.
возможно есть смысл до-автоматизировать шаблон замены парой галок, 1 - исполнить после замены (авто-F5), 2 - заменить результат замены результатом исполнения. имхо получится достаточно универсально, и не будет привязки к весьма специфической задаче.
20 июн 12, 17:45    [12747889]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich
RubinDm
пропущено...
Обертки для хранимых процедур: часто приходится оборачивать уже готовые процедуры в новые с такими же параметрами (1в1) с той лишь целью, чтобы вложенная процедура отрабатывала в транзакции или в save-point'е, который открывается процедурой-оберткой. Было бы нереально круто получить инструмент для генерации скриптов создания таких оберток на автомате. В качестве параметров автомату должны передаваться: 1 - имя оборачиваемой процедуры, 2 - режим обертки:

Да - это класс. Мне даже кажется что у нас в работе то что вам нужно. Пришлите или по почте, или киньте сюда список "типов" и примеры для них. Может так случится, что будет готово через 2-3 недели, т.к. как раз сейчас работаем над похожей функцией. Мы ей просто обобщим.
(адрес смотрите на нашем сайте - суппорт - это тоже я :) )
про список "типов" я не очень понял.. о каких типах речь?
20 июн 12, 17:48    [12747915]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm
AndreiRantsevich
пропущено...

Да - это класс. Мне даже кажется что у нас в работе то что вам нужно. Пришлите или по почте, или киньте сюда список "типов" и примеры для них. Может так случится, что будет готово через 2-3 недели, т.к. как раз сейчас работаем над похожей функцией. Мы ей просто обобщим.
(адрес смотрите на нашем сайте - суппорт - это тоже я :) )
про список "типов" я не очень понял.. о каких типах речь?

Я хотел сказать: напишите "список режимов обёртки".
Т.е. приведите пару конкретных примеров для наглядности.
20 июн 12, 18:05    [12748025]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm
AndreiRantsevich
пропущено...


Эта функция мне кажется слишком специфической. Что вы уже сейчас можете сделать - это добавить в SSMSBoost-е такой Autoreplacement:
"selg" -> "select newid()"
Каждый раз как будете писать "selg" он будет заменяться на select newid(), остаётся только
Shift-Pos1 (выделить всё до начала строки) и F5. Занимает всё ровно 1 сек :)

после F5 надо еще пойти в резалт, копировать его, потом в код, вставить... бр.
возможно есть смысл до-автоматизировать шаблон замены парой галок, 1 - исполнить после замены (авто-F5), 2 - заменить результат замены результатом исполнения. имхо получится достаточно универсально, и не будет привязки к весьма специфической задаче.

Ок. Я записал это. Запросы по улучшению макросов были уже похожие. Но быстро не сделаем, т.к. другие более полезные таски делаем. Вот ваше другое предложение по "обёрткам" - это очень актуально.
20 июн 12, 18:09    [12748043]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
а вы можете объсянить, чем отличаются разные версии аддина?

по функционалу и в натуре?
20 июн 12, 18:22    [12748113]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
Winnipuh,
ничем не отличаются :)
Пользователи бесплатной версии просто должны раз в 45 дней загружать новую версию. Те, кто купил лицензию могут этого не делать. Вот и всё.
20 июн 12, 18:25    [12748132]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
AndreiRantsevich
Winnipuh,
ничем не отличаются :)
Пользователи бесплатной версии просто должны раз в 45 дней загружать новую версию. Те, кто купил лицензию могут этого не делать. Вот и всё.


а то я уже в непонятках.... крэкать, не крэкать ...
20 июн 12, 18:34    [12748179]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
Winnipuh
AndreiRantsevich
Winnipuh,
ничем не отличаются :)
Пользователи бесплатной версии просто должны раз в 45 дней загружать новую версию. Те, кто купил лицензию могут этого не делать. Вот и всё.


а то я уже в непонятках.... крэкать, не крэкать ...

Не - ещё пока не надо. Я дам знать.
20 июн 12, 18:37    [12748204]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
AndreiRantsevich
Winnipuh
пропущено...


а то я уже в непонятках.... крэкать, не крэкать ...

Не - ещё пока не надо. Я дам знать.


спасибо. Как говорят в Америке - вы сэкономили мне время ;-)
20 июн 12, 18:41    [12748222]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
-- Оборачивать будем такую вот процедуру:
create procedure [dbo].[SomeProc] ( @P1 int = null, @P2 int = null, @P3 int = null output )
as
begin
  return 0;
end
go
В диалоге у пользователя надо :
1) Спрашивать имя для новой процедуры-обертки (с предложением вменяемых вариантов по умолчанию).
2) Если в оборачиваемой процедуре есть output-параметры:
Спрашивать, желает ли пользователь сбрасывать их в null до вызова оборачиваемой процедуры.
Если желает - предоставить пользователю перечень output-параметров
с возможностью указания, какие конкретно надо сбрасывать, а какие надо оставить as-is.
3) Спрашивать, надо ли оборачивать вызов процедуры в транзакцию.
Если надо: Спрашивать, надо ли оборачивать вызов процедуры точкой сохранения, если обертка УЖЕ исполняется в транзакции.
4) Спрашивать, надо ли генерировать код с диагностическими сообщениями.

Все ответы надо как-то сохранять (в провиль пользователя) и восстанавливать по умолчанию при следующем оборачивании уже другой процедуры. Ответы о необходимости сброса output параметров также надо сохранять (имя параметра + ответ - БЕЗ упоминания конкретной процедуры). Восстанавливать ответы по умолчанию через имена параметров.

Далее предполагаем, что пользователь заказал в диалоге максимальную функциональность.

Оборачивать будем как-то так (как именно - обсуждаемо!) :)
create procedure [dbo].[SomeProc_Safe] ( @P1 int = null, @P2 int = null, @P3 int = null output )
as
begin

  --------------------------------------------------------------------------------  
  set nocount on;

  --------------------------------------------------------------------------------  
  declare @procName varchar(128) = object_name(@@procid);
  print 'executing: ' + @procName;
  print '@P1 = (' + isnull(cast(@P1 as varchar(10)), 'NULL') + ')';
  print '@P2 = (' + isnull(cast(@P2 as varchar(10)), 'NULL') + ')';
  
  set @P3 = null; -- output parameter
  -- ИЛИ
  print '@P3 = (' + isnull(cast(@P3 as varchar(10)), 'NULL') + ')';
  
  --------------------------------------------------------------------------------  
  declare @savepoint varchar(32) = null; -- имя save-point'а
  if (@@trancount = 0) begin
    begin transaction
    print 'New transaction has been started';
  end else begin
    set @savepoint = replace(newid(), '-', ''); 
    save transaction @savepoint
    print 'New savepoint has been created: (' + @savepoint + ')';
  end

  --------------------------------------------------------------------------------  
  -- Далее делаем вызов оборачиваемой процедуры.
  
  declare @rv int;
  exec @rv = SomeProc -- non-safe
    @P1 = @P1
  , @P2 = @P2
  , @P3 = @P3 output
  
  if (@rv != 0)
    goto failurePoint;

  --------------------------------------------------------------------------------
  goto successPoint;
		
--------------------------------------------------------------------------------  
failurePoint:

  print @procName + ': FAILURE'
  
	if (@sp is null)
	  rollback transaction
	else
	  rollback transaction @sp

  goto exitPoint;

--------------------------------------------------------------------------------  
successPoint:

  print @procName + ': SUCCESS'

	if (@sp is null)
	  commit transaction

  goto exitPoint;
  
exitPoint:

  print 'OUTPUT:@P3 = (' + isnull(cast(@P3 as varchar(10)), 'NULL') + ')';
  print @procName + ': has return (' + cast(@rv as varchar(10)) + ')'
  return @rv;
  
end
go
20 июн 12, 19:28    [12748505]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm,
ок. Идея ясна. Я посмотрю что можно будет достичь имеющимися средствами.
20 июн 12, 20:52    [12748828]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
AndreiRantsevich,

Все кто скачал адд-ин: ну как ? Если есть предложения по улучшению удобства, добавлению новых функций - пишите.

В след. релизе можно будет просматривать картинки сохранённые в полях таблиц.. и ещё несколько функций...
26 июн 12, 13:43    [12776279]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Vladimir2009
Member

Откуда: xammep.net
Сообщений: 482
AndreiRantsevich,

после установки плагина заметил особенность:
при окрытой студии, новый скрипт открывается в новом окне (как и без плагина)
НО ДУБЛИРУЕТ старые коннекты: т.е. во втором окне студии вкладка нового скрипта
+ все старые вкладки из 1го окна студии (причем они пусты).
как избавиться от дублей?
29 июн 12, 13:19    [12794141]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
Vladimir2009,

Это настройки Preferred connections. Там есть параметр "открывать новое окно при каждом запуске". Его нужно поставить тогда в False у каждого соединения.

Тут дело вкуса: многие разработчика открывают SSMS раз в неделю и он у них потом всё время висит. Для них удобно при первом запуске автоматически открыть пустой документ (или несколько) с установленным соединением к их рабочей базе.
Ну а некоторые открывают SSMS часто и даже по несколько копий. Тогда конечно этот авто-коннект удобства не добавляет.
Кстати, если кто-то запускает по несколько копий SSMS, то обратите внимание, что SSMSBoost переопределяет заголовок окна SSMS и теперь запущенные копии можно отличить друг от друга (видно название документа и его соединение)
29 июн 12, 13:38    [12794284]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Vladimir2009
Member

Откуда: xammep.net
Сообщений: 482
AndreiRantsevich,

настроил, теперь все ок.
29 июн 12, 14:15    [12794594]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
RubinDm
Member

Откуда: SPb
Сообщений: 458
AndreiRantsevich,

бага: ставим курсор на название процедуры в коде, далее жмем педаль "Script object". Далее довольно долго что-то где-то варится и появляется следующий код ...
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
  
CREATE procedure ...

По идее, после SET'ов надо бы добаить GO, чтобы было так:
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
  
CREATE procedure ...

кроме того, надо либо сразу генерить DROP/CREATE, либо CREATE подменить на ALTER.

еще бага: после установки плагина в OE перестало отрабатывать F5, т.е. теперь OE обновляется только через вызов Refresh'а из контекстного меню в OE.

зы:
Microsoft SQL Server Management Studio10.50.1600.1
Microsoft Analysis Services Client Tools10.50.1600.1
Microsoft Data Access Components (MDAC)3.86.3959
Microsoft MSXML2.6 3.0 5.0 6.0
Microsoft Internet Explorer8.0.6001.18702
Microsoft .NET Framework2.0.50727.3615
Operating System5.2.3790

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) Jun 17 2011 00:54:03 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
30 июн 12, 15:42    [12798567]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 766
RubinDm,

Всё в точку:
1. уже нашли и исправили - "GO" ставится
2. над этим думали и думаем. :) Наверное добавим опцию - генерить ALTER или CREATE
3. F5 в OE тоже будет работать. Это из-за некоторых проблем, которые мы не могли красиво решить, но сейчас решили.
4. Есть возможность при генерации скрипта добавлять custom шапку, с любыми доступными параметрами. Была бы такая функция интересна ?

(всё что сверху описано выйдет следующим релизом через 1-2 недели)
30 июн 12, 15:50    [12798586]     Ответить | Цитировать Сообщить модератору
 Re: Plug-in-ы для SSMS 2005/2008. Необходим плагин для редактора студии?  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5955
AndreiRantsevich
Наверное добавим опцию - генерить ALTER или CREATE

Кстати, а в SMO для этого вообще есть опция? Или SSMS сам в зависимости от выбора пользователя в уже готовом скрипте меняет CREATE на ALTER (если это допустимо)?
По поводу того, что хотелось бы видеть - вспомнил вот что: я с давних пор обзавелся привычкой явно открывать транзакции перед любыми DML. Но эти транзакции, разумеется, нужно явно и закрывать. Бывает, откроешь вкладок 10, наделаешь там транзакций, а потом сидишь, и пишешь в каждой select @@trancount... Нельзя ли как-то для текущей вкладки @@trancount в бросающемся в глаза виде выводить в какой-нибудь свободное место окна редактора (на ваше усмотрение)?
30 июн 12, 16:58    [12798684]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить