Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 66 67 68 69 70 71 72 73 [74] 75   вперед  Ctrl
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
Сон Веры Павловны
Посмотрите, пожалуйста, 21926530 - из-за описанного совместное использование SSMS 18.0 и SSMSBoost откладывается.

Да как-то вообще заявленная поддержка ПО постоянно откладывается, что расстраивает
16 авг 19, 08:39    [21950685]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Сон Веры Павловны
AndreiRantsevich,

Посмотрите, пожалуйста, 21926530 - из-за описанного совместное использование SSMS 18.0 и SSMSBoost откладывается.

Если я не ошибаюсь, появилась проблема в 18.0 (релиз) и сама решилась в 18.2.
У вас есть возможность установить 18.2 ?
Сегодня будет релиз 3.7... уже билдим инсталлы и делаем последние проверки...
19 авг 19, 11:40    [21952319]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5255
AndreiRantsevich
Сон Веры Павловны
AndreiRantsevich,

Посмотрите, пожалуйста, 21926530 - из-за описанного совместное использование SSMS 18.0 и SSMSBoost откладывается.

Если я не ошибаюсь, появилась проблема в 18.0 (релиз) и сама решилась в 18.2.
У вас есть возможность установить 18.2 ?
Сегодня будет релиз 3.7... уже билдим инсталлы и делаем последние проверки...

Поставил 18.2. Да, вроде бы всё пришло в норму, но SSMSBoost у меня сейчас работает в режиме ограниченного функционала по причине истечения срока годности коммьюнити-инсталляции - может, свою роль играла какая-нибудь отключенная на данный момент функциональность. Выйдет релиз, тогда всё будет известно точно.
19 авг 19, 12:40    [21952386]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3163
Leax
Сон Веры Павловны
Посмотрите, пожалуйста, 21926530 - из-за описанного совместное использование SSMS 18.0 и SSMSBoost откладывается.

Да как-то вообще заявленная поддержка ПО постоянно откладывается, что расстраивает


мы, юзеры бесплатной версии, не расстраиваемся
19 авг 19, 14:11    [21952506]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Сон Веры Павловны
AndreiRantsevich
пропущено...

Если я не ошибаюсь, появилась проблема в 18.0 (релиз) и сама решилась в 18.2.
У вас есть возможность установить 18.2 ?
Сегодня будет релиз 3.7... уже билдим инсталлы и делаем последние проверки...

Поставил 18.2. Да, вроде бы всё пришло в норму, но SSMSBoost у меня сейчас работает в режиме ограниченного функционала по причине истечения срока годности коммьюнити-инсталляции - может, свою роль играла какая-нибудь отключенная на данный момент функциональность. Выйдет релиз, тогда всё будет известно точно.

На самом деле, мы ещё перепроверили и добавили на всякий случа ещё одну проверку. Виновато точно было изменение в 18.0, но на будующее всё-таки сделали улучшение (в 3.7)
19 авг 19, 15:26    [21952594]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Итак, выпустили релиз SSMSBoost v3.7
Как мы ни старались сделать его быстро, но всё никак не могли оторваться от списка новых функций и доделок: больших и маленьких... Надеюсь изменения будут полезны :)
(Кстати, исправлены несколько ошибок, присланных нам именно с этого форума)

SSMSBoost v3.7

- NEW: Added support for the latest Release of SSMS 18.2 (15.0.18142.0) 
- NEW: Jump between bracket pairs:  Press CTRL-SHIFT-DOWN or CTRL-SHIFT-UP when cursor is located on the closing or 
	   opening bracket to navigate to the corresponding pair. In total, you can now use CTRL-SHIFT-DOWN/CTRL-SHIFT-UP
	   hotkeys to navigate between following pairs:
	   - Brackets: ( ) 
	   - BEGIN / END
	   - Column name / Value in INSERT settings (also when using INSERT / SELECT variant)
- IMPROVED: UI improvements in advanced Object Search dialog: 
			- added the possibility to search for columns/parameters of the specific object
			  Double-click the object in results list to set it as context filter.
			- added context menu on the search results with additional options
			- improved documentation: https://www.ssmsboost.com/Features/ssms-add-in-advanced-objects-search
- IMPROVED: Grid Aggregates control enhancements:
			-added "DATALENGTH" aggregate function. It allows to estimate the amount of bytes
			 contained in Results Grid cells. Note, in some cases on complicated data types, the value shown can refer
			 to the field datatype declaration and not to the actual value.
			-added the possibility to define the "Skip limit" in bytes for columns with big amounts of data. If value of
			 single cell exceeds specified limit, no aggregate will be calculated for such column. 
			 See Settings->Grid Aggregates.
- IMPROVED: ColumnsSearch, GridAggregates, Advanced Objects Search dialogs have now similar interface (as far as 
			possible), including:
			-similar design/color scheme
			-context menu for search results (right-click), with possibility to export data to Excel or comma-separated 
			 list ("Copy as newline", "Copy as comma separated")
- IMPROVED: Recent connections, Recent document dialogs now show full file path on hover and have auto-filter-row for 
			quick navigation.
- IMPROVED: Added the possibility to define the order of sections in the "Connection Switch" combo box control.
			You can also hide individual sections, if required. See Settings->Preferred Connections.
- FIXED: Locate/Script object functionality was sometimes failing to recognize objects with complex names (containing
		 "[]", reserved words or triggers spelled without schema)
- FIXED: Formatter/Fatal Actions Guard were failing to process sql scripts, utilizing SQL Server support for GRAPHs. 
		 The reason is that native SSMSparser crashes on such scripts. We have added proper handling of the situation.
		 In worst case, the script will not be formatted/ignored.
- FIXED: It was not possible to activate SSMSBoost on additional PC for same user using the same activation key if
		 different username casing was used upon log-in.
19 авг 19, 15:33    [21952604]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Как вам версия 3.7? Понравились улучшения?

На данный момент собираем список дел на 3.8.
Взялись за улучшение форматтера. Самое время присылать накопившиеся пожелания (в частности будет улучшен способ редактирования шаблона форматирования)
В общем присылайте всё что накипело по форматтеру и другим функциям.
23 авг 19, 01:36    [21956128]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
uaggster
Member

Откуда:
Сообщений: 729
AndreiRantsevich
Как вам версия 3.7? Понравились улучшения?

На данный момент собираем список дел на 3.8.
Взялись за улучшение форматтера. Самое время присылать накопившиеся пожелания (в частности будет улучшен способ редактирования шаблона форматирования)
В общем присылайте всё что накипело по форматтеру и другим функциям.

Очень хотелось бы расшифровку имен полей, не детализированных с помощью алиаса этим самым алиасом.
Т.е.
Select field1 from table1 a --> Select a.field1 from table1 a
И замену звездочки набором полей.
Но это, как я понимаю, не форматер, а углубленный парсинг запроса.

Очень хотелось бы побольше преднастроенных шаблонов форматтера.
Я понимаю, что можно взять и настроить под себя, но лень же, согласитесь?
:-)
23 авг 19, 11:03    [21956297]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
Порадовало исправление бага с отсутствием неименованных документов в Solution Explorer, точнее, что теперь не нужно каждый раз лазить в настройки студии.
Новые фишки пока не проверял.

Часто в коде можно увидеть join из нескольких таблиц, причем в select просто перечислены поля и непонятно какое поле из какой таблицы взято. Хорошо было бы проставлять алиасы перед полями (как предлагают постом выше), а также добавить возможность по правому клику на поле видеть в каких таблиц join оно присутствует (показать список таблиц, выбрать таблицу, автоматом слева от поля поставить алиас выбранной таблицы).
23 авг 19, 11:13    [21956307]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5255
AndreiRantsevich
Как вам версия 3.7? Понравились улучшения?

На данный момент собираем список дел на 3.8.
Взялись за улучшение форматтера. Самое время присылать накопившиеся пожелания (в частности будет улучшен способ редактирования шаблона форматирования)
В общем присылайте всё что накипело по форматтеру и другим функциям.

Очень не помешала бы функция сохранения данных грида в формате сериализованного в XML датасета.
Пример:
exec sp_helplogins 'NT SERVICE\REPORTSERVER'

на выходе получаем:
<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Table">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="LoginName" type="xs:string" minOccurs="0" />
                <xs:element name="SID" type="xs:base64Binary" minOccurs="0" />
                <xs:element name="DefDBName" type="xs:string" minOccurs="0" />
                <xs:element name="DefLangName" type="xs:string" minOccurs="0" />
                <xs:element name="AUser" type="xs:string" minOccurs="0" />
                <xs:element name="ARemote" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element name="Table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="LoginName" type="xs:string" minOccurs="0" />
                <xs:element name="DBName" type="xs:string" minOccurs="0" />
                <xs:element name="UserName" type="xs:string" minOccurs="0" />
                <xs:element name="UserOrAlias" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Table>
    <LoginName>NT SERVICE\ReportServer</LoginName>
    <SID>AQYAAAAAAAVQAAAAIUQBrPBm6jQhhzAQgEVSYOtoS6I=</SID>
    <DefDBName>master</DefDBName>
    <DefLangName>us_english</DefLangName>
    <AUser>yes  </AUser>
    <ARemote>no     </ARemote>
  </Table>
  <Table1>
    <LoginName>NT SERVICE\ReportServer</LoginName>
    <DBName>master</DBName>
    <UserName>NT SERVICE\ReportServer</UserName>
    <UserOrAlias>User    </UserOrAlias>
  </Table1>
  <Table1>
    <LoginName>NT SERVICE\ReportServer</LoginName>
    <DBName>master</DBName>
    <UserName>RSExecRole</UserName>
    <UserOrAlias>MemberOf</UserOrAlias>
  </Table1>
  <Table1>
    <LoginName>NT SERVICE\ReportServer</LoginName>
    <DBName>msdb</DBName>
    <UserName>NT SERVICE\ReportServer</UserName>
    <UserOrAlias>User    </UserOrAlias>
  </Table1>
  <Table1>
    <LoginName>NT SERVICE\ReportServer</LoginName>
    <DBName>msdb</DBName>
    <UserName>RSExecRole</UserName>
    <UserOrAlias>MemberOf</UserOrAlias>
  </Table1>
</NewDataSet>
26 авг 19, 06:54    [21957435]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Сон Веры Павловны
Очень не помешала бы функция сохранения данных грида в формате сериализованного в XML датасета.
Пример:
exec sp_helplogins 'NT SERVICE\REPORTSERVER'


Есть шаблон скриптования грида: XML
Вы просто можете его доработать до нужного вида.
Сейчас он выглядит так:

<?xml version="1.0" ?>
<RESULTS1>
	<RECORD>
		<name>sysrscols</name>
		<object_id>3</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
	<RECORD>
		<name>sysrowsets</name>
		<object_id>5</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
	<RECORD>
		<name>sysclones</name>
		<object_id>6</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
</RESULTS1>
26 авг 19, 07:23    [21957443]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5255
AndreiRantsevich
Сон Веры Павловны
Очень не помешала бы функция сохранения данных грида в формате сериализованного в XML датасета.
Пример:
exec sp_helplogins 'NT SERVICE\REPORTSERVER'


Есть шаблон скриптования грида: XML
Вы просто можете его доработать до нужного вида.
Сейчас он выглядит так:

<?xml version="1.0" ?>
<RESULTS1>
	<RECORD>
		<name>sysrscols</name>
		<object_id>3</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
	<RECORD>
		<name>sysrowsets</name>
		<object_id>5</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
	<RECORD>
		<name>sysclones</name>
		<object_id>6</object_id>
		<principal_id>NULL</principal_id>
		<schema_id>4</schema_id>
		<parent_object_id>0</parent_object_id>
		<type>S </type>
		<type_desc>SYSTEM_TABLE</type_desc>
	</RECORD>
</RESULTS1>

А в этот шаблон можно добавить генерацию XSD, как показано выше?
26 авг 19, 08:23    [21957456]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
Сон Веры Павловны
AndreiRantsevich
пропущено...


Есть шаблон скриптования грида: XML
Вы просто можете его доработать до нужного вида.
Сейчас он выглядит так:
...

А в этот шаблон можно добавить генерацию XSD, как показано выше?


За 1 пробег не получиться, но можно сделать 2 шаблона - один будет генерить верхнюю часть а одди нижнюю.
26 авг 19, 14:15    [21957653]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
uaggster
Member

Откуда:
Сообщений: 729
В новой версии - что-то сломалось!
1. Не подсвечиваются элементы в insert.
(см. рисунок)
2. По прежнему падает Action Guard на синтаксисе работы с циклами.
(см. мой пост выше)

К сообщению приложен файл. Размер - 74Kb
11 сен 19, 09:25    [21968267]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
istrebitel
Member

Откуда:
Сообщений: 18
Хотелось бы генератор параметров. В SQL Navigator при запуске запроса с параметрами показывается окно со списком параметров, где можно задать им значения. Т.к. такой принцип работы скорее всего не реализуем расширением, можно чтобы генерировалась строка declare. Например есть запрос прописанный в компоненте доступа к БД к примеру в FireDAC TFDQuery и мы хотим его исправить.
+ запрос
select
	podrs.podr_name
	, wrk.work_tabnum
	, wrk.work_surname
	, wrk.work_name
	, wrk.work_patron
	, emc.emc_name
	, posts.post_name
	, usr.usr_name
	, sq2.plan_id
	, sq2.pr_id
	, sq2.pr_date
	, sq2.pr_worker_id
	, sq2.pr_podr_id
	, sq2.pr_workplan_id
	, sq2.pr_graveyard
	, sq2.plan_pr_absence
	, sq2.actual_pr_absence
	, sq2.pr_appeared
	, sq2.pr_comment
	, sq2.pr_lastuser
	, sq2.pr_lastmodif
	, sq2.wrkp_name
	, case
		when sq2.needPresence = 1 then sq2.wrkp_start
		else null
	end wrkp_start
	, case
		when sq2.needPresence = 1 then sq2.wrkp_end
		else null
	end wrkp_end
	, sq2.worker_enter
	, sq2.worker_exit
	, cast(	case 
				when sq2.wke_noanalizpassages = 1 then 0 
				else
					case 
						when sq2.needPresence = 1 and (sq2.worker_enter > DATEADD(minute, :LateEntryThreshold, sq2.wrkp_start) or sq2.worker_enter is null) then 1 
						else 0 
					end
			end as bit) isLateEntry
	, cast( case 
				when sq2.wke_noanalizpassages = 1 then 0 
				else
					case 
						when sq2.needPresence = 1 and (sq2.worker_exit < sq2.wrkp_end) then 1 
						else 0 
					end 
			end as bit) isEarlyExit
	, cast(	case 
				when sq2.wke_noanalizpassages = 1 then 0 
				else
					case 
						when sq2.needPresence = 0 and (sq2.worker_enter >= sq2.pr_date and (sq2.worker_enter < DATEADD(minute, -:UnAuthThreshold, sq2.nextdaygraveyard) or sq2.nextdaygraveyard is null)) then 1 
						else 0 
					end 
			end as bit) isUnAuthPresence
	, cast(	case 
				when sq2.wke_noanalizpassages = 1 then 0 
				else
					case 
						when sq2.needPresence = 1 and (sq2.worker_enter < DATEADD(minute, -:EarlyEntryThreshold, sq2.wrkp_start)) then 1
						--when sq2.needPresence = 0 and (sq2.worker_enter < DATEADD(minute, -:EarlyEntryThreshold, sq2.nextdaygraveyard)) then 1
						else 0 
					end 
			end as bit) isEarlyEntry
	, cast(	case 
				when sq2.wke_noanalizpassages = 1 then 0 
				else
					case 
						when sq2.needPresence = 1 and (sq2.worker_exit > DATEADD(minute, :LateExitThreshold, sq2.wrkp_end)) then 1
						else 0 
					end 
			end as bit) isLateExit
	, sq2.nextdaygraveyard
	, case when sq2.wps_hours is null then 1 else 0 end wpOnHoliday
	, count(sq2.actual_pr_absence) over(partition by sq2.pr_worker_id, sq2.pr_date) ActualRecordCount
	, sq2.wps_hours
	, sq2.wps_nighthours
	, sq2.wke_hideintimesheets
	, sq2.wke_noanalizpassages
	, sq2.needPresence
from
	(
	select
		sq.plan_id
		, sq.pr_id
		, sq.pr_date
		, sq.pr_worker_id
		, sq.pr_podr_id
		, sq.pr_workplan_id
		, sq.mantab_id
		, sq.pr_graveyard
		, sq.plan_pr_absence
		, sq.actual_pr_absence
		, sq.pr_appeared
		, sq.pr_comment
		, sq.pr_lastuser
		, sq.pr_lastmodif
		, sq.wrkp_name
		, sq.wrkp_start
		, sq.wrkp_end
		, (
			select top 1
				cast(ems.emsp_dtEnter as datetime)
			from
				int_EmsPassages ems
			where
				ems.emsp_worker_id = sq.pr_worker_id
				and ems.emsp_dtEnter >= dbo.StartOfTheDay(coalesce(sq.wrkp_start, dateadd(day, -sq.pr_graveyard, sq.pr_date))) and ems.emsp_dtEnter < coalesce(sq.wrkp_end, dateadd(day, 1, sq.pr_date))
				and (ems.emsp_dtExit > coalesce(sq.wrkp_start, dateadd(day, -sq.pr_graveyard, sq.pr_date)) or ems.emsp_dtExit is null)
			order by
				ems.emsp_dtEnter
		) worker_enter
		, (
			select top 1
				cast(ems.emsp_dtExit as datetime)
			from
				int_EmsPassages ems
			where
				ems.emsp_worker_id = sq.pr_worker_id
				and (ems.emsp_dtEnter >= dbo.StartOfTheDay(coalesce(sq.wrkp_start, dateadd(day, -sq.pr_graveyard, sq.pr_date))) and ems.emsp_dtEnter < coalesce(dateadd(minute, 15, sq.wrkp_end), dateadd(day, 1, sq.pr_date)) or ems.emsp_dtEnter is null)
				and (ems.emsp_dtExit > coalesce(sq.wrkp_start, dateadd(day, -sq.pr_graveyard, sq.pr_date)))
			order by
				ems.emsp_dtEnter desc
				, ems.emsp_dtExit desc
		) worker_exit
		, sq.wps_hours
		, sq.wps_nighthours
		, case 
			when sq.wrkp_nightstart is null then null 
			else CAST(CONVERT(CHAR(8), sq.pr_date, 112)  + ' ' + CAST(sq.wrkp_nightstart AS CHAR(16)) AS DATETIME)
		end nextdaygraveyard
		, sq.wke_hideintimesheets
		, sq.wke_noanalizpassages
		, case 
			when sq.plan_pr_absence in ('РВ', 'СР', 'Я') then 1
			else 0
		end needPresence
	from
		(
		select
			plan1.plan_id
			, actual1.actual_id pr_id
			, coalesce(plan1.date1, actual1.date1) pr_date
			, coalesce(plan1.worker_id, actual1.worker_id) pr_worker_id
			, coalesce(plan1.podr_id, actual1.podr_id) pr_podr_id
			, coalesce(plan1.workplan_id, actual1.workplan_id) pr_workplan_id
			, coalesce(plan1.mantab_id, actual1.mantab_id) mantab_id
			, case when wps.wps_nighthours is null then 0 else 1 end pr_graveyard
	
			, plan1.pr_absence plan_pr_absence
			, actual1.pr_absence actual_pr_absence

			, actual1.pr_appeared
			, actual1.pr_comment
			, actual1.pr_lastuser
			, actual1.pr_lastmodif
		
			, wkp.wrkp_name
			, CAST(
				CONVERT(CHAR(8)
						-- Если ночная смена и табелируется следующим днём то отнимаем день (зайти работник должен был вчера)
						, dateadd(day, case when wps.wps_nighthours is not null and wkp.wrkp_nightspecalg = 0 then -1 else 0 end, coalesce(plan1.date1, actual1.date1))
						, 112
						)  + ' ' + CAST(case when wps.wps_nighthours is null then wkp.wrkp_daystart else wkp.wrkp_nightstart end AS CHAR(16))
				 AS DATETIME) wrkp_start
			, dateadd(HOUR
					, case 
						when  wkp.wrkp_shortthursday = 1 and DATEPART(dw, coalesce(plan1.date1, actual1.date1)) = 4 then -1
						when  wkp.wrkp_shortfriday = 1 and DATEPART(dw, coalesce(plan1.date1, actual1.date1)) = 5 then -1
						when  wkp.wrkp_shortsaturday = 1 and DATEPART(dw, coalesce(plan1.date1, actual1.date1)) = 6 then -1
						else 0
					end +
					case
						when wkp.wrkp_shortpreholiday = 1 and :pre_holiday = 1 then -1
						else 0
					end
					, CAST(
						CONVERT(CHAR(8)
									, dateadd(DAY
												-- -- Если ночная смена и табелируется текущим днём то добавляем день (выйти работник должен завтра)
												, case when wps.wps_nighthours is not null and wkp.wrkp_nightspecalg = 1 then 1 else 0 end
												, coalesce(plan1.date1, actual1.date1)
											)
									, 112
									)  + ' ' + CAST(case when wps.wps_nighthours is null then wkp.wrkp_dayend else wkp.wrkp_nightend end AS CHAR(16)) AS DATETIME
						)
					) wrkp_end
			, wps.wps_hours
			, wps.wps_nighthours
			, wrkp_night.wrkp_nightstart
			, wke.wke_hideintimesheets
			, wke.wke_noanalizpassages
		from 
			((
			select 
				a.tmsh_id plan_id
				, a.tmsh_date date1		
				, a.tmsh_worker_id worker_id
				, a.tmsh_podr_id podr_id
				, a.tmsh_workplan_id workplan_id
				, a.tmsh_t1 pr_absence
				, a.tmsh_mantab_id mantab_id
			from 
				&selvaltable sv
				--#selected_values sv
				join int_timesheet a on a.tmsh_podr_id = sv.selv_num and a.tmsh_date = :date1
			where
				sv.selv_type = :selv_type
				and sv.selv_subtype = :selv_subtype
			) plan1
			full outer join
			(
			select
				a.pr_id actual_id
				, a.pr_date date1		
				, a.pr_worker_id worker_id
				, a.pr_podr_id podr_id
				, a.pr_workplan_id workplan_id
				, a.pr_absence
				, prwrk.work_mantab_id mantab_id
				, a.pr_appeared
				, a.pr_comment
				, a.pr_lastuser
				, a.pr_lastmodif
				
			from 
				&selvaltable sv
				--#selected_values sv
				join int_presence a on a.pr_podr_id = sv.selv_num and a.pr_date = :date1
				left join int_workers prwrk on prwrk.work_id = a.pr_worker_id
			where
				sv.selv_type = :selv_type
				and sv.selv_subtype = :selv_subtype
			) actual1 on plan1.worker_id = actual1.worker_id 
						and plan1.podr_id = actual1.podr_id 
						and plan1.workplan_id = actual1.workplan_id
						--and plan1.date1 = actual1.date1
						)
			left join int_workplans wkp on wkp.wrkp_id = coalesce(plan1.workplan_id, actual1.workplan_id)
			left join int_workplan_sched wps on wps.wps_date = coalesce(plan1.date1, actual1.date1) and wps.wps_workplan_id = wkp.wrkp_id
			left join int_timesheet ts_night on ts_night.tmsh_date = coalesce(plan1.date1, actual1.date1) + 1
											and ts_night.tmsh_worker_id = coalesce(plan1.worker_id, actual1.worker_id)
											and ts_night.tmsh_t1 in ('РВ', 'СР', 'Я')
			left join int_workplan_sched wps_night on wps_night.wps_date = coalesce(plan1.date1, actual1.date1) + 1 
													and wps_night.wps_workplan_id = ts_night.tmsh_workplan_id
													and wps_night.wps_nighthours is not null
			left join int_workplans wrkp_night on wrkp_night.wrkp_id = wps_night.wps_workplan_id and wrkp_night.wrkp_nightspecalg = 0
			left join int_workexcluded wke on wke.wke_worker_id = coalesce(plan1.worker_id, actual1.worker_id)  
		) sq
	) sq2
	left join int_workers wrk on wrk.work_id = sq2.pr_worker_id
	left join int_podr podrs on podrs.podr_id = sq2.pr_podr_id
	left join int_users usr on usr.usr_id = sq2.pr_lastuser
	left join int_mantab mtb on mtb.mtb_id = sq2.mantab_id
	left join int_employee_classes_lst emc on emc.emc_id = mtb.mtb_employee_class_id
	left join int_posts posts on posts.post_id = wrk.work_post_id
where
	sq2.wke_hideintimesheets = 0 or sq2.wke_hideintimesheets is null
order by
	podrs.podr_name
	, sq2.wrkp_name
	, wrk.work_surname
	, wrk.work_name
	, wrk.work_patron

Делаем Ctrl+C в IDE, Ctrl+V в SSMS. Теперь для его запуска надо в параметрах двоеточия исправить на @ (:date1 -> @date1)
Добавить вверху секцию
declare 
	@date1 datetime = convert(datetime, '19.07.2018', 104)
	, @pre_holiday bit = 0
	, @selv_type int = 2
	, @selv_subtype int = 2
	, @LateEntryThreshold int = 10
	, @EarlyEntryThreshold int = 40
	, @LateExitThreshold int = 40
	, @UnAuthThreshold int = 80;

И заменить все подстановочные переменные в данном примере &selvaltable на #selected_values

Поэтому хотелось бы команду замены : в параметрах на @ и обратно.

Команду генерации строки declare. Я вижу это как появление окна со списком найденных параметров с 3 колонками: имя параметра, тип, значение. Внизу окна Memo, для сгенерированного результата. Пользователь заполняет тип и значения и нажимает сгенерировать, а затем копирует результат куда ему нужно. Если тип можно определить, например поле таблицы сравнивается с параметром, то было бы вообще замечательно если бы заполнялся автоматически.

Команду замены подстановочных переменных. Принцип как с параметрами, находим все, показываем списком, пользователь вводит на что заменить и жмёт заменить. Ну и если совсем по красоте, то текст заместивший переменную можно обрамить блоками комментариев и реализовать команду возврата переменных например
+ запрос
SELECT
	req.REQ_ID
	, req.REQ_DATE
	, req.REQ_USR_ID
	, req.REQ_PODR_ID
	, req.REQ_TEXT
	, req.REQ_STATUS
	, req.REQ_DExaming
	, req.REQ_EXAMING_USR_ID
	, req.REQ_COMMENT
	, req.REQ_EXAMING_PODR_ID
	, req.REQ_OBJECT
	, req.REQ_DEFECT
	, req.REQ_TYPE
	, req.REQ_TELNUMBER
	, req.REQ_WORKTIME
	, req.REQ_OWNER_USR_ID
	, req.REQ_VIEWED_BY_EXECUTOR
	, req.REQ_OBJECT_ID
	, req.REQ_ERROR_ID
	, req.REQ_STATUS_MODIF_DATE
	, req.REQ_CATEGORY_ID
	, case when req.REQ_EXAMING_USR_ID = :OwnerID then 0 else 1 end ic_direction
	, iif(obj.obj_id is null, null, concat(obj.obj_code, ', ', obj.obj_name)) object_ic
	, err.err_name error_ic
FROM
	ASU_REQUEST req
	left join mre_objects_lst obj on obj.obj_id = req.REQ_OBJECT_ID 
	left join mre_errors_lst err on err.err_id = req.REQ_ERROR_ID
WHERE
	req.REQ_TYPE = :REQ_TYPE	
	&filters
	&filterRights
ORDER BY 
	&orderby

Делаем замены
&filters -> AND REQ_STATUS IN (1, 5, 6, 7, 8) 
&filterRights -> AND REQ_EXAMING_USR_ID = 5
&orderby -> req.REQ_DATE DESC

Получаем на выходе
+ запрос
SELECT
	req.REQ_ID
	, req.REQ_DATE
	, req.REQ_USR_ID
	, req.REQ_PODR_ID
	, req.REQ_TEXT
	, req.REQ_STATUS
	, req.REQ_DExaming
	, req.REQ_EXAMING_USR_ID
	, req.REQ_COMMENT
	, req.REQ_EXAMING_PODR_ID
	, req.REQ_OBJECT
	, req.REQ_DEFECT
	, req.REQ_TYPE
	, req.REQ_TELNUMBER
	, req.REQ_WORKTIME
	, req.REQ_OWNER_USR_ID
	, req.REQ_VIEWED_BY_EXECUTOR
	, req.REQ_OBJECT_ID
	, req.REQ_ERROR_ID
	, req.REQ_STATUS_MODIF_DATE
	, req.REQ_CATEGORY_ID
	, case when req.REQ_EXAMING_USR_ID = :OwnerID then 0 else 1 end ic_direction
	, iif(obj.obj_id is null, null, concat(obj.obj_code, ', ', obj.obj_name)) object_ic
	, err.err_name error_ic
FROM
	ASU_REQUEST req
	left join mre_objects_lst obj on obj.obj_id = req.REQ_OBJECT_ID 
	left join mre_errors_lst err on err.err_id = req.REQ_ERROR_ID
WHERE
	req.REQ_TYPE = :REQ_TYPE	
	/*SSMSBoost SubstReplStart=filters*/AND REQ_STATUS IN (1, 5, 6, 7, 8)/*SSMSBoost SubstReplEnd=filters*/
	/*SSMSBoost SubstReplStart=filterRights*/AND REQ_EXAMING_USR_ID = 5/*SSMSBoost SubstReplEnd=filterRights*/
ORDER BY 
	/*SSMSBoost SubstReplStart=orderby*/req.REQ_DATE DESC/*SSMSBoost SubstReplEnd=orderby*/

Благодаря комментариям можно реализовать команду восстановления исходного запроса.

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

Желательно чтобы команды применялись либо к выделенному участку, либо ко всему тексту в редакторе если нет выделения.

Ну и присоединяюсь к уже объявленным пожеланиям разворачивать alias.* в перечень полей, хотябы для таблиц, но если и для подзапросов будет работать, то совсем замечательно.
12 сен 19, 06:08    [21969057]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
u.eMeHTuk
Member

Откуда:
Сообщений: 4
Привет.
Версия SSMSboost :
Картинка с другого сайта.
Не активен пп "Copy as Xml ..."
Картинка с другого сайта.
до последней версии было все хорошо.

Настройки не менялись\проверил - не добавилось ли новых для активации\деактивации данного пп.

Функционал очень был востребован , не подскажите - как вернуть \ активировать?

Спасибо.
27 сен 19, 14:44    [21980947]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
u.eMeHTuk,

У вас триальный период закончился, поэтому заблокировалась часть функционала.
Нужно покупать проф. лицензию. Не помню, помогает ли переустановка бустера, вроде нет.
27 сен 19, 15:45    [21981044]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1117
Leax
u.eMeHTuk,

У вас триальный период закончился, поэтому заблокировалась часть функционала.
Нужно покупать проф. лицензию. Не помню, помогает ли переустановка бустера, вроде нет.

как он мог закончиться, если он 120 дней, а отсчитывается с 2019-08-19?
Проф. лицензия не нужна для этого функционала, у меня аналогичная Community, и работает. Только у меня номер сборки отличается - полный номер версии 3.7.7170.22760
27 сен 19, 15:54    [21981063]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
Minamoto,

тогда нужно ждать ответа разработчика продукта
27 сен 19, 16:03    [21981083]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
u.eMeHTuk
Member

Откуда:
Сообщений: 4
Minamoto
Только у меня номер сборки отличается - полный номер версии 3.7.7170.22760


Да, где то на этой версии все работало. Обновился..
Ждем комментарий разработчика.
27 сен 19, 17:37    [21981178]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
AndreiRantsevich
Member

Откуда: Минск
Сообщений: 758
u.eMeHTuk
Привет.
Версия SSMSboost :
Картинка с другого сайта.
Не активен пп "Copy as Xml ..."
Картинка с другого сайта.
до последней версии было все хорошо.

Настройки не менялись\проверил - не добавилось ли новых для активации\деактивации данного пп.

Функционал очень был востребован , не подскажите - как вернуть \ активировать?

Спасибо.


Эти функции доступны только в течение 30и дней после установки очередной версии.
Подробно доступность функций описана тут:
https://www.ssmsboost.com/VersionCompare
27 сен 19, 18:46    [21981231]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9531
Хотелки еще принимаются?

Было бы здорово если бы при генерации скрипта таблицы в этот скрипт дописывались и скрипты индексов.
27 сен 19, 21:52    [21981367]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Leax
Member

Откуда: Киев
Сообщений: 432
Дикий Билл
Было бы здорово если бы при генерации скрипта таблицы в этот скрипт дописывались и скрипты индексов.

Так это в настройках самой студии делается
27 сен 19, 21:54    [21981368]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9531
Leax
Дикий Билл
Было бы здорово если бы при генерации скрипта таблицы в этот скрипт дописывались и скрипты индексов.

Так это в настройках самой студии делается
Ничего себе! Не знал :)
27 сен 19, 23:15    [21981406]     Ответить | Цитировать Сообщить модератору
 Re: SSMSBoost - бесплатный add-in для SSMS: доводка уровня удобства SSMS до рейтинга "ух-ты !"  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9531
Leax
Дикий Билл
Было бы здорово если бы при генерации скрипта таблицы в этот скрипт дописывались и скрипты индексов.

Так это в настройках самой студии делается
Нашел :) Спасибо.
27 сен 19, 23:21    [21981408]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 66 67 68 69 70 71 72 73 [74] 75   вперед  Ctrl
Все форумы / Microsoft SQL Server Ответить