First thing first you need to be strict with UI elements
This type of testing include validating the
text boxes,
select dropdowns,
calendars and buttons,
SQL Server database tools are used to perform unit testing
The commercial tool in which tests are being created in VB or C# projects
Tests are created in two ways such as either by generating tests from the database using T-SQL script or you can add tests manually using templates
While generating tests from database project you can make use of SQL Server Object Explorer
Official Link: SQL Server
What are the primary concerns when doing db unit testing
Creating an up to date schema, managing schema changes
Setting up data (reference data, test data) and maintaining test data
Keeping tests independent
Allowing developers to work concurrently
Speed (tests involving database are typically slower and will make your whole build take more time)
and how to do it "right"?
As hinted, follow known good practices and use dedicated tools/frameworks:
Prefer in memory database if possible (for speed)
Use one schema per developer is a must (to allow concurrent work)
Use a "database migration" tool (à la RoR) to manage schema changes and update a schema to the ultimate version
Build or use a test harness allowing to put the database in a known state before each test and to perform asserts against the data after the execution (or to run tests inside a transaction that you rollback at the end of the test).
ApexSQL