Пример поиска процедуры по тексту который она содержит
SELECT name
FROM sys.procedures
WHERE Object_definition(object_id) LIKE '%некоторый_текст%'
Этот скрипт вернет названия всех процедур которые содержат в текст: "некоторый_текст"
Пример поиска процедуры по тексту который она содержит
SELECT name
FROM sys.procedures
WHERE Object_definition(object_id) LIKE '%некоторый_текст%'
Этот скрипт вернет названия всех процедур которые содержат в текст: "некоторый_текст"
Пример выбора диапазона дат:
WITH q AS
(
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num < 10
)
SELECT DATEADD(DAY,0,cast(cast(DATEADD(DAY,-num,SYSDATETIME()) as date) as datetime))
FROM q
Пример обновления данных в одной таблице с одновременным сопоставлением и проверкой условия по второй таблице при помощи JOIN:
update cc
set cc.ActivateState=2
from ClientsCards cc
left join ClientsCardsHeads cch
on cch.CardUid=cc.Uid
where cc.ActivateState=0 and cch.State=3
ClientsCards cc - Первая таблица в которой производится изменение.
ClientsCardsHeads cch - Вторая таблица с данными которой производится сверка.
Рецепт, чтобы запереть FTP пользователя в своей папке.
Прописать в vsftpd.conf:
local_enable=YES
allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
В файле /etc/vsftpd.chroot_list надо указать UserId пользователей для которых это правило будет действовать.
Данный пример может быть полезен, когда надо выбрать некоторое количество пронумерованных записей из неоткуда допустим во временную таблицу или табличную переменную.
Пример:
select number as Section from master..spt_values where type='L' and number>0 and number<=100
Пример выводит 100 строк таблицы с значениями от 1 до 100 и единственным столбцом Section.
Для того чтобы по SSH могли получить доступ только пользователи определённых групп,
В SSHD_CONFIG - прописываем:
AllowGroups root
Те, кто входит в группы root и teamusers, получат доступ по SSH.
Пример, как отлавливать ошибки в MSSQL.
BEGIN TRY
-- Какой нибудь код который вернет ошибку для примера.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
Часто бывает необходимость передать за один раз некоторый набор данных в процедуру, в этой публикации будет приведен пример как это сделать на языке C# для базы данных MSSQL.
Использовать будем обычный способ вызова процедуры без каких либо фреймворков.
Для начала создадим тестовую таблицу в базе данных:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Bottles](
[Uid] [uniqueidentifier] NOT NULL,
[Name] [varchar](50) NULL,
[Color] [varchar](50) NULL
) ON [PRIMARY]
GO
В данной таблице будем размещать бутылки разных названий и цветов (просто для теста).