Stored procedures
- Pro: Permissioning of actions without needing to grant more fundamental rights at the table level.
- Pro: Discrete and versionable
- Pro: Allows you to isolate your schema from your data access code.
- Con: Can be tedious to code CRUD procedures
- Con: Need to be kept in line with underlying schema
Ad hoc and dynamic - see Bill Paetzke's answers and comments.
Also, don't forget patterns such as bulk insert for SQL which isn't in your list but should still be considered.