Применяем SPLIT_STRING для каждой строки в таблице - MSSQL

Пример применения SPLIT_STRING для всех строк в наборе одним скриптом.

-- Создаем набор данных для примера

declare @tbl table(path varchar(max));
insert into @tbl
select 'root_home_user'
union
select  'lib_var_simple'
union
select 'var_games_user'

--Теперь выбираем для каждой записи второе значение в строке с учетом разделителя "_"

select
path,
s.value -- Здесь будет результат SPLIT_STRING для каждого поля
	from @tbl
CROSS APPLY
    STRING_SPLIT(path, '_') AS s -- Замените '_' на ваш разделитель
WHERE
    s.value = (SELECT value FROM STRING_SPLIT(path, '_')
	ORDER BY (SELECT NULL) OFFSET 1 ROW FETCH NEXT 1 ROW ONLY)

-- Для выбора какой из параметров по порядку взять, меняем OFFSET - 0 - первый и далее.
Подробнее

Выполнение динамически созданного скрипта с возвращением параметра SP_EXECUTESQL - MSSQL

Пример возвращения параметра при выполнении динамически созданного запроса.

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


Будем использовать для этого sp_executesql

DECLARE @eventCount as int = 0; -- Наш возвращаемый параметр
DECLARE @sqlString AS NVARCHAR(500); -- Динамически сгенерированный SQL скрипт
DECLARE @parmDefinition AS NVARCHAR(500); -- Набор параметров для обмена

DECLARE @actualDate as date = '2000-08-24';
DECLARE @tableName as varchar(max) = 'sys.tables';

SET @parmDefinition = N'@outputCount int OUTPUT,@DateSend date';
SET @sqlString = N'select @outputCount = count(1) from '+@tableName+' where create_date>@dateSend;';

EXEC sp_executesql
    @stmt = @sqlString, -- Динамически созданный запрос
    @params = @parmDefinition, -- Описание передаваемых параметров (как в запрос так и обратно)
    @dateSend = @actualDate, -- Принимаемый параметр
    @outputCount = @eventCount OUTPUT; -- Возвращаемый параметр

SELECT @eventCount AS CountEvents;


Подробнее

Знак вопроса в TMP_Text TextMeshPro Unity

Если при обработке текста из TMP_InputField, появляется символ вопроса в конце строки (вероятно может быть и другой символ). То дело может быть в том, что TMP_InputField может добавлять символ неразрывного пробела конце строки 0x200B. В самом поле ввода вы его не увидите, но при определенных обстоятельствах при передаче текста может всплыть.

Лечится эта проблема довольно просто, вот так:

myTextMeshProText.text = myTextMeshProText.text.Replace("\u200B", "");
Подробнее

Пример добавления события на кнопку Button в Unity

Пример добавление события на кнопку 

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class PanelPaused : MonoBehaviour
{
    public Button buttonContinue;

    public Button buttonExit;

    void Start()
    {
        buttonContinue.onclick.AddListener(() => Buttonclicked("continue"));
        buttonExit.onclick.AddListener(() => Buttonclicked("exit"));
    }

    void Buttonclicked(string button)
    {
        switch (button)
        {
            case "continue":
                Debug.Log("Делаем что-нибудь для Continue");
                break;

            case "exit":
                Debug.Log("Делаем что-нибудь для Exit")
                break;
        }
    }
}
Подробнее

Добавление, изменение и удаление комментариев к полям в таблице MSSQL TSQL

Добавление описания к полю в таблице

EXEC sp_addextendedproperty 
    @name = N'MS_Description', 
    @value = N'Описание поля', 
    @level0type = N'SCHEMA', @level0name = N'CRM', -- Вместо 'dbo' ставим название своей схемы если отличается
    @level1type = N'TABLE', @level1name = N'TableName', -- Наименование таблицы 'TableName', для поля которой добавляем описание
    @level2type = N'COLUMN', @level2name = N'ColumnName'; -- Название поля 'ColumnName', для которого добавляем описание
Подробнее

Примеры получения текста запроса по SESSIONID - MSSQL


Примеры получения текста запроса по идентификатору сессии

DECLARE @sqltext VARBINARY(128)
SELECT @sqltext = sql_handle
FROM sys.sysprocesses
WHERE spid = (YourSessionID)
SELECT TEXT
FROM sys.dm_exec_sql_text(@sqltext)
GO


SELECT TEXT
FROM sys.dm_exec_connections
CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle)
WHERE session_id = (yoursessionID)
GO
Подробнее

Выборка полей временной таблицы с параметрами в MSSQL

Пример выборки полей из временной таблицы со всеми параметрами.
Идентично можно выбирать и для обычных таблиц.

Select c.column_id
    ,c.name   [column_name]
    ,y.name   [data_type]
    ,c.max_length
    ,c.precision
    ,c.scale
    ,c.is_identity
    ,c.is_nullable
    ,c.collation_name
  ,', ['+c.name +'] ['+y.name+']'
  +IIF (y.name in ('varchar','char'),'('+cast(IIF(c.max_length=0,'max',c.max_length) as varchar(5))+')','')
  +IIF (y.name in ('nvarchar'),'('+cast(IIF(c.max_length=0,'max',c.max_length/2) as varchar(5))+')','')
  +IIF (y.name in ('decimal','numeric'),'('+cast(c.precision as varchar(3))+', '+cast(c.scale as varchar(3))+')','')
  +IIF (not y.collation_name is null,' COLLATE '+y.collation_name,'')
  +IIF (y.is_nullable = 1,' NULL','')
  as [ready_column]
 From tempdb.sys.columns c 
 Inner join sys.types y ON y.system_type_id = c.system_type_id
 WHERE c.object_id = Object_id('tempdb..#tmp')
   and y.name!='sysname'
   order by c.column_id

#tmp - ваша временная таблица

Подробнее