Question: I just started using Linq to SQL, and it just occurred to me that I don't really need any sprocs in the database since i can do all the data access through Linq to SQL. 

Is there any reason to write sprocs with Linq to SQL?

Thank you.

Answer: 
There typically is no good reason to write stored procedures in new applications.

The reason is there are myriads of much better techniques for performing data access in your applications. There are numerous object-relational mapping technologies available for dozens of languages and platforms.

One argument for stored procedures is that they present an abstract API in front of the database. The problem with that is, SQL is a very bad language for trying to write high-level business programs. Another problem with that is, you will be consuming the API in front the database from languages other than SQL. Languages like C#, Ruby and Haskell offer far more powerful ways of creating APIs in front of the database, which are much more natural when consumed in these languages.
I fear you've just walked on a religous mine!

Stored procedures or not is a very hotly debated subject, and often (in my opinion) boils down to a fight between DB/SQL specialists on one side and 'vanilla' developers on the other. Each side trying to get as much of the duvet as they can.

Check out this link, [Stored procedures are bad, m'kay?](http://weblogs.asp.net/fbouma/archive/2003/11/18/38178.aspx) and the ensuing LOOOOONG debate.