TSQL does not expose functionality to execute other TSQL operations asynchronously. Having said that, that doesn't mean you don't still have a lot of options to accomplish this:
- SQL Agent Jobs: Jobs are by definition SQL threads which execute independently. You can set several procedures to run simultaneously by assigning each one an owning job. Alternatively, you can create a generic infrastructure to associate the procedure with a self-dynamic created job and execute it. See example.
- SSIS Packages: SSIS supports executing parallel process by design. You can create several blocks (without dependencies) to be executed in parallel. Note for the MaxConcurrentExecutables attribute of SQL Server Integration Services Package which defines how many tasks can run in parallel. By default, the value of this property is set to -1, which means that it will be able to run a maximum of - Number of processors+2 (tasks in parallel).
- Custom Application: Create a custom application in any language code that supports asynchronous methods and has database access.
- Power shell Script : As in the previous option, PowerShell lets you execute processes in parallel using the -Parallel attribute. As opposed to a custom application, using PowerShell scripts supports step execution from within an SQL Agent job, which can be used as a scheduler. In addition, scripts are easier to maintain and debug, especially in production environments.
- Service Broker: Use the service broker queue and built-in parallel functionality to create a generic infrastructure to call procedures asynchronously. Basically, queue the procedure calls and let the service broker parallel executer execute the queued procedures. See example.
- CLR: Create an Async CLR procedure to execute code asynchronously. Note - for the security setting you will need to register this as un-safe as SQL Server will not allow to control its internal threading. See example.
- Scheduled Windows Tasks: An additional scheduler option (the first option is the SQL Server Agent) that lets you execute tasks in parallel. Note that in Cluster (CFI) environments, the Windows Task Scheduler is not cluster aware by default.
nice article. Worth reading.