In this chapter, we'll use Transact -SQL for more than interactive queries. When we send a query to the server, we're sending a command batch to SQL Server. But we can do even more! For example, we can wrap up commands in a module that can be stored and cached at the server for later reuse (stored procedures), and we can create modules that automatically execute when some event occurs (triggers). This chapter takes a closer look at transactions and transaction boundaries and shows how changes by multiple users affect them.