Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 December 01

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Ilgga Latypovv
Как сделать триггер, чтобы он не давал авторизоваться конкретному юзеру?
Лучше так не делать. Просто запретите ему вход. Логон триггер выполняется для всех и любая ошибка в нем вызовет ошибку входа тоже для всех. ALTER LOGIN [LOH_PIDR] DISABLE
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Если же так очень надо сделать - убедитесь, что умеете пользоваться DAC и предусмотрите в триггере явное условие, исключающее SA или другую УЗ из действия триггера.
источник

ЮИ

Юрий Исаенко... in SqlCom.ru - Стиль жизни SQL
Триггер это вообще Ultima ratio regnum. Пользоваться только тогда, когда уж никак нельзя избежать
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Юрий Исаенко
Триггер это вообще Ultima ratio regnum. Пользоваться только тогда, когда уж никак нельзя избежать
Совершенно верно. Редки случаи, когда иначе нельзя обойтись.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Ilgga Latypovv
Как сделать триггер, чтобы он не давал авторизоваться конкретному юзеру?
А что мешает просто удалить пользователя, или задизейблить?
источник

IL

Ilgga Latypovv in SqlCom.ru - Стиль жизни SQL
Спасибо
источник

IL

Ilgga Latypovv in SqlCom.ru - Стиль жизни SQL
Ну так надо было сделать
источник

ᏃᏞᎪᎽᎬᏒ in SqlCom.ru - Стиль жизни SQL
16:39  Error occurred: [S0001][3634] The operating system returned the error '267(The directory name is invalid.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on '/var/opt/mssql/data/Academy_log.ldf\Adventure.mdf'.
источник

ᏃᏞᎪᎽᎬᏒ in SqlCom.ru - Стиль жизни SQL
Случаем никто не знает как пофиксить ?
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
ᏃᏞᎪᎽᎬᏒ
Случаем никто не знает как пофиксить ?
Я не уверен, но бросатеся в глаза вот это: Academy_log.ldf\Adventure.mdf. Точно так надо записывать?
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
ᏃᏞᎪᎽᎬᏒ
16:39  Error occurred: [S0001][3634] The operating system returned the error '267(The directory name is invalid.)' while attempting 'RestoreContainer::ValidateTargetForCreation' on '/var/opt/mssql/data/Academy_log.ldf\Adventure.mdf'.
Да, тут в команде RESTORE ошибка - неверно указано имя конечного файла в выражении MOVE
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
ᏃᏞᎪᎽᎬᏒ
Случаем никто не знает как пофиксить ?
Сорян, не допетрил, что надо прям решение написать. Надо взять и выражении RESTORE в клаузе MOVE указать пути до файлов mdf и ldf отдельными строками вида:
RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY,
     MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
     MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH RECOVERY;
Сейчас
у вас явно слепились два имени файла через слэш
источник

DK

Dmitriy Kostarev in SqlCom.ru - Стиль жизни SQL
Приветствую, есть столбец с данными типа 0, 1, 2, 3, 0, 0, 1, 2, 3, 4,0. Мне надо как то окном посчитать max в каждом окне между нулями, т.е в 1 случае это 3, во втором 4. Каждая строка имеет разную не совпадающую дату
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
на первый взгляд кажется только построчная обработка в цикле...
источник

АА

Андрей Агеев... in SqlCom.ru - Стиль жизни SQL
Dmitriy Kostarev
Приветствую, есть столбец с данными типа 0, 1, 2, 3, 0, 0, 1, 2, 3, 4,0. Мне надо как то окном посчитать max в каждом окне между нулями, т.е в 1 случае это 3, во втором 4. Каждая строка имеет разную не совпадающую дату
Если считать что-то между, должен быть определен порядок строк, он есть?
источник

IK

Ivan Kuzmin in SqlCom.ru - Стиль жизни SQL
Dmitriy Kostarev
Приветствую, есть столбец с данными типа 0, 1, 2, 3, 0, 0, 1, 2, 3, 4,0. Мне надо как то окном посчитать max в каждом окне между нулями, т.е в 1 случае это 3, во втором 4. Каждая строка имеет разную не совпадающую дату
можно попробовать сначала пронумеровать - rownumber() as rn, потом из получившейся выборки выбрать только с 0  сортировка по rn и с помощью lead/lag  считать разницу между rn что то типа  rn - lead(rn,1,0)-1  over(order by rn)
источник

DK

Dmitriy Kostarev in SqlCom.ru - Стиль жизни SQL
Андрей Агеев
Если считать что-то между, должен быть определен порядок строк, он есть?
все строки идут по возрастанию даты
источник

DK

Dmitriy Kostarev in SqlCom.ru - Стиль жизни SQL
Ivan Kuzmin
можно попробовать сначала пронумеровать - rownumber() as rn, потом из получившейся выборки выбрать только с 0  сортировка по rn и с помощью lead/lag  считать разницу между rn что то типа  rn - lead(rn,1,0)-1  over(order by rn)
вроде должно помочь, попробую, спасибо
источник

ВБ

Владимир Боярских... in SqlCom.ru - Стиль жизни SQL
Dmitriy Kostarev
Приветствую, есть столбец с данными типа 0, 1, 2, 3, 0, 0, 1, 2, 3, 4,0. Мне надо как то окном посчитать max в каждом окне между нулями, т.е в 1 случае это 3, во втором 4. Каждая строка имеет разную не совпадающую дату
Сходу такой вариант в голову пришёл
источник

ᏃᏞᎪᎽᎬᏒ in SqlCom.ru - Стиль жизни SQL
Oleg T
Сорян, не допетрил, что надо прям решение написать. Надо взять и выражении RESTORE в клаузе MOVE указать пути до файлов mdf и ldf отдельными строками вида:
RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY,
     MOVE 'AdventureWorks2012_Data' TO
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf',
     MOVE 'AdventureWorks2012_Log'
TO 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';
RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH RECOVERY;
Сейчас
у вас явно слепились два имени файла через слэш
Все работает и я понял свою ошибку. Видимо DataGrip как-то неверно создает запрос на восстановление в моем контейнере.  
Спасибо большое Олег.
Спасли меня ✌️
источник