Database development is complicated by nature! Database engines are stateful, so data loss is always a risk; object dependencies determine the order in which changes need to be applied and the loosely coupled nature of the SQL language can result in unexpected runtime errors. These are just a small collection of examples why database development is hard. The SQL Server Data Tools (SSDT) development environment helps developers getting a better handle on database development, testing, deployment and migrations. The declarative nature lets the developer focus on the final state they want, instead of writing an imperative script on how to change the state of the database directly.
For more information, check out these courses on Microsoft Virtual Academy: