Scheduled Task on SQL Azure - sql

I actually search for a system to do a task every day at a precise time. This task is to delete some entries in the database.
I have a Web Role and a Sql Azure database.
I found some tutorial but nothing very effective and simple.
Can somebody help me ?
Thanks a lot.

Take a lok at this SO post Scheduled Tasks with Sql Azure?.
As of now there is no equivalent of SQL job in SQL server.

If you are open to using a service to do this scheduling of tasks, an alternate solution to purchasing your own worker role is to use Cotega which supports this functionality. For example, you can schedule it to launch stored procedure on regular intervals.
Full disclosure, I work on this service.

Related

How to schedule datebase backup in IBM DB2

I want to schedule datebase backup in IBM DB2.
Is it possible?
I found some information about it from documentation: https://www.ibm.com/docs/en/db2/11.1?topic=commands-backup-database
I would like to schedule it to happen every 3 months and saved in a specific location.
Thanks for the answers and best regards.
There are multiple choices for that.
You may use your OS task scheduler (at, cron).
Db2 has its own task scheduler called Admin Task Scheduler (ATS).
You may use the ADMIN_TASK_ADD routine to schedule online backup like described in the Example 1 after setting up Db2 ATS.
You may set up Automatic database backup (both offline and online) as well.

Sending emails from within Azure SQL Elastic Jobs steps

In Azure Elastic Jobs (preview) I am trying to find a way to send an email from within T_SQL in one of the job steps as msdb.dbo.sp_send_dbmail is not available in elastic Jobs. I have done some research and it appears there is no native support that i can find for achieving this and the only suggestion I have found so far is saving the jobs output to a table and then using something else (like PowerShell) to send the actual email.
Here is a link to an article explaining one way of achieving this and another here link.
Has anyone found a better solution to this?
Azure SQL database doesn't support msdb.dbo.sp_send_dbmail. That's why we must use other tools like PowerShell or logic app. Just for now, these are the solutions we can find and there isn't a better solution for now.
If you want use this feature, may you can choose Azure SQL managed instance or SQL Server in VMs.
HTH.

How to run a T-SQL query daily on an Azure database

I am trying to migrate a database from a sql server into Azure. This database have 2 rather simple TSQL script that inserts data. Since the SQL Agent does not exist on Azure, I am trying to find an alternative.
I see the Automation thing, but it seems really complex for something as simple as running SQL scripts. Is there any better or at least easier way to do this ?
I was under the impression that there was a scheduller for that for I can't find it.
Thanks
There are several ways to run a scheduled Task/job on the azure sql database for your use case -
If you are comfortable using the existing on-premise sql sever agent you can connect to your azure sql db(using linked servers) and execute jobs the same way we used to on on-premise sql server.
Use Automation Account/Runbooks to create sql jobs. If you see marketplace you can find several examples on azure sql db(backup,restore,indexing jobs..). I guess you already tried it and does not seem a feasible solution to you.
Another not very famous way could be to use the webjobs(under app service web app) to schedule tasks(can use powershell scripts here). The disadvantage of this is you cannot change anything once you create a webjob
As #jayendran suggested Azure functions is definitely an option to achieve this use case.
If some how out of these if you do not have options to work with the sql directly , there is also "Scheduler Job Collection" available in azure to schedule invocation of HTTP endpoints, and the sql operation could be abstracted/implemented in that endpoint. This would be only useful for less heavy sql operations else if the operation takes longer chances are it might time out.
You can use Azure Functions to Run the T-SQL Queries for Schedule use Timely Trigger.
You can use Microsoft Flow (https://flow.microsoft.com) in order to create a programmed flow with an SQL Server connector. Then in the connector you set the SQL Azure server, database name, username and password.
SQL Server connector
There are many options but the ones that you can use to run a T-SQL query daily are these:
SQL Connector options
Execute a SQL Query
Execute stored procedure
You can also edit your connection info in Data --> Connections menu.

Periodically update data in Sql Azure Database

I have an SQL Azure Database instance which provide data to a windows 8 app. The data in my database should be updated periodically (weekly). Is the any way to make it? I'm thinking of write a app which will run weekly and update the database. But still don't know how to make it run on Window Azure? Please help!
Thank you,
There are a number of ways to achieve this, does the data however need to come from a different source or can it be calculated?
Either way, seeing as you're already knee deep in SQL Azure I would suggest putting your logic into a worker role that can be scheduled to run your updates once a week. This would give you a great opportunity to do calculations and/or fetch data externally.
Azure gives you the flexibility to scale this worker role into numerous instances as well depending on the work load.
Here is a nice intro tutorial on creating a worker role on Azure: link
Write the application and set it to run through your cron job manager on a weekly time schedule. The cron job manager should be provided by your host.

Windows Service or SQL Job?

I have an archiving process that basically deletes archived records after a set number of days. Is it better to write a scheduled SQL job or a windows service to accomplish the deletion? The database is mssql2005.
Update:
To speak to some of the answers below, this question is regarding an in house application and not a distributed product.
It depends on what you want to accomplish.
Do you want to store the deleted archives somewhere? Log the changes? An SQL Job should perform better since it is run directly in the database, but it is easier to give a service acces to resources outside the database. So it depends on what you want to do,,,
I would think a scheduled SQL job would be a safer solution since if the database is migrated to a new machine, someone doing the migration might forget that there is a windows service involved and forget to start/install it on the new server.
In the past we've had a number of SQL Jobs run. Recently, however, we've been moving to calling those processes from .Net code as a client application run from a windows schedule task, for two reasons:
It's easier to implement features like logging this way.
We have other batch jobs that don't run in the database, and therefore must be in windows scheduled tasks. This way all the batch jobs of any type will be listed in one place.
Please note that regardless of how you do it, for this task you do not want a service. Services run all day, and will consume a bit of the server's ram all day.
In this, you have a task you need to run, and run once a day, every day. As such, you'd either want a job in SQL Server or as Joel described an application (console or winforms) that was setup on a schedule to execute and then unload from the server's memory space.
Is this for you/in house, or is this part of a product that you distribute.
If in house, I'd say the SQL job. That's just another service too.
If it's part of a product that you distribute, I would consider how the installation and support will be.
To follow on Corey's point, if this is externally distributed, will you need to support SQL Express? If not, I'd go with the SQL job directly. Otherwise, you'll have to get more creative as SQL Express does not have the SQL Agent that comes with the full versions of SQL 2005 (as well as MSDE). Without the SQL Agent, you'll need another way to automatically fire the job. It could be a windows service, a scheduled task (calling a .NET app, powershell script, VBscript, etc.), or you could try to implement some trigger in SQL Server directly.