Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
Есть компьютер, на нем установлен SQL Server 2012.
есть у меня некий запрос, который должен выполнятся при условии, что например, если на диске с папка с именем "1", имеет дату изменения вчерашнюю и раннее. Как это реализовать? Т.е. запрос автоматически выполняется при условии, что наша папка имеет дату изменения вчера или позавчера.

с SQL сильно не знаком.

Какие советы? Спасибо в заранее.
14 авг 17, 17:12    [20722718]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
dolcegabana,

Права администратора есть?

P.S. Вы уверены, что эту проверку в базе данных делать надо?
14 авг 17, 17:24    [20722775]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
aleks222
Guest
dolcegabana

Какие советы? Спасибо в заранее.


Представь, что это не папка, а фаза луны.
И сразу поймешь.
14 авг 17, 17:28    [20722799]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
Yuri Abele,

эту проверку лишь бы сделать, вот в чем дело.)
14 авг 17, 17:29    [20722807]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
Yuri Abele,

права админа есть.
14 авг 17, 17:30    [20722813]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
нужно идти по этому пути: Среди одних из этих ограничений это наличие, а точнее отсутствие MS SQL Agent-а. Частично данную проблему можно решить, использую пакетные файлы(проще говоря .bat файлы),Windows шелдура и приложение sqlcmd .

вопрос..имеется ли sqlcmd в windows 7?
14 авг 17, 17:32    [20722820]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
dolcegabana
нужно идти по этому пути: Среди одних из этих ограничений это наличие, а точнее отсутствие MS SQL Agent-а. Частично данную проблему можно решить, использую пакетные файлы(проще говоря .bat файлы),Windows шелдура и приложение sqlcmd .

вопрос..имеется ли sqlcmd в windows 7?

офисный планктон не знает что это утилита sql?
14 авг 17, 17:35    [20722831]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
TaPaK,

да офисный планктон не в курсе.
14 авг 17, 17:37    [20722851]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4213
dolcegabana
TaPaK,

да офисный планктон не в курсе.


Про xp_cmdshell что-нибудь слышали?
14 авг 17, 17:39    [20722859]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
SQL2008
dolcegabana
TaPaK,

да офисный планктон не в курсе.


Про xp_cmdshell что-нибудь слышали?

это как гланды через жопу sql сервер
14 авг 17, 17:41    [20722865]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7768
Папка на диске к SQL серверу имеет столько же отношения, сколько ботинки к постельным принадлежностям. Пишите приложение, которое папку проверит и скрипт выполнит.
14 авг 17, 17:41    [20722866]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4213
TaPaK
SQL2008
пропущено...


Про xp_cmdshell что-нибудь слышали?

это как гланды через жопу sql сервер

Естественно! Но автора, похоже, это мало беспокоит.
14 авг 17, 17:43    [20722874]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
На вскидку:

- PowerShell скрипт создающий соединение System.Data.SqlClient
- PowerShell скрипт создающий соединение через PowerShell for MSSQL (не помню точно название)
- Написать SSIS пакет и выполнить его через "C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\DTExecUI.exe"
- Написать простейшее консольное приложение на .NET создающее соединение System.Data.SqlClient
- Скачать с интернета тот же SqlCmd или ему подобный


- извращение черех xp_cmdshell 'dir /A:D /O:ND | FIND "1"'
14 авг 17, 17:59    [20722944]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Yuri Abele, дополню еще одним способом:

sp_configure 'Ole Automation Procedures', 1
go
reconfigure
go

declare @FS int, @objFolder int, @date datetime;
		
exec sp_OACreate 'Scripting.FileSystemObject', @FS OUT
exec sp_OAMethod @FS, 'GetFolder("c:\tmp\")', @objFolder OUTPUT 
exec sp_OAMethod @objFolder, 'DateLastModified', @date output

select @date
14 авг 17, 18:13    [20722994]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Minamoto,

тоже вариант
14 авг 17, 18:26    [20723034]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
Yuri Abele,

Как в powershell сравнить дату изменения например папки на диске с:\1 с текущей датой и выполнить условие?
14 авг 17, 18:35    [20723055]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
dolcegabana,

https://docs.microsoft.com/ru-ru/powershell/module/Microsoft.PowerShell.Utility/New-TimeSpan
14 авг 17, 18:56    [20723108]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
dolcegabana
Yuri Abele,

Как в powershell сравнить дату изменения например папки на диске с:\1 с текущей датой и выполнить условие?


$source = 'C:\TEMP'
$today = Get-Date
$lastWriteTime = (Get-Item $source).LastWriteTime
$timeDiff = $today - $lastWriteTime

If ($timeDiff.Hours -GT 2) {
    Echo 'Call SQL'
} Else {
    Echo 'Nothing to do'
}
14 авг 17, 19:13    [20723150]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
[quot Yuri Abele]
dolcegabana
Yuri Abele,


If ($timeDiff.Hours -GT 2)


[/src]


это означает, что если разница в 2 часа то...?
15 авг 17, 08:38    [20723842]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
[quote dolcegabana]
Yuri Abele
dolcegabana
Yuri Abele,


If ($timeDiff.Hours -GT 2)


[/src]


это означает, что если разница в 2 часа то...?

Ну что же вы прям "в лоб"?!
Это пример только. Вам надо 24 часа. Или вообще не .Hours, а .Days проверять.

Вам выше коллега привел страницу с описанием TimeSpan-а (тип получаемый при вычитании дат)
15 авг 17, 09:32    [20723981]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
[quot Yuri Abele]
dolcegabana
пропущено...

Ну что же вы прям "в лоб"?!
Это пример только. Вам надо 24 часа. Или вообще не .Hours, а .Days проверять.

Вам выше коллега привел страницу с описанием TimeSpan-а (тип получаемый при вычитании дат)



мне как раз и нужно провеhить разницу т.е. если разница между тек датой и датой папки 2 часа..то выполнить скрипт)


Пока проверить не могу, но помоему данный скрипт не сработает да?! есть какие то ограничения при выполнение файлов .sql?
Invoke-Sqlcmd -InputFile "C:\zap.sql"
15 авг 17, 09:41    [20724024]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
Было бы не плохо еще сказать в каком контексте (на каком сервере и в какой базе данных) выполнять.
Почитайте тут: Invoke-Sqlcmd, командлет
Там еще сравнение с SqlCmd
15 авг 17, 09:58    [20724100]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
dolcegabana
Member

Откуда:
Сообщений: 359
Yuri Abele
Было бы не плохо еще сказать в каком контексте (на каком сервере и в какой базе данных) выполнять.
Почитайте тут: Invoke-Sqlcmd, командлет
Там еще сравнение с SqlCmd





$source = 'C:\1'
$today = Get-Date
$lastWriteTime = (Get-Item $source).LastWriteTime
$timeDiff = $today - $lastWriteTime

$Days = "-2"
$OldDate = $today.AddDays($Days)
 
 
If ($timeDiff.Hours -GT 4) 
{
 
    Get-ChildItem $source | Where-Object { $_.LastWriteTime -lt $OldDate } | Remove-Item -Recurse
 
КАК МНЕ ТУТ ЕЩЕ ВЫПОЛНИТЬ ТАЙМАУТ?
 
    Invoke-Sqlcmd -InputFile "C:\rep.sql"
 
    
 
 
 
} 
Else 
{
    
}
15 авг 17, 13:16    [20724914]     Ответить | Цитировать Сообщить модератору
 Re: выполнение запроса при условии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
А зачем таймаут?

P.S. $Days - целое число, не надо его в кавычки
15 авг 17, 14:51    [20725302]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить