Take the 2-minute tour ×

Currently i have no way to test my code with SQL Server. I know nothing about it and have been using SQLite. What should i know while switching? My app is programmed in C# .NET

share|improve this question
add comment

5 Answers

To get you started, here are some important things when switching to a enterprise grade networked DB -- from a global-lock embedded in-process db:

  • You need to know about connections failing when doing networked programming, and how to handle such exceptions elegantly.

  • You need to know about connection pooling.

  • you need to know about transactions, since there is no global lock in a enterprise grade enterprise system.

  • You need to know about isolation levels which depend on the type of guarantees a database can give you.

  • You need to learn about SQL extensions -- such as those made by the T-SQL language. These extensions allow you to program complex logic easily.

share|improve this answer
add comment

Why do you say there is "no way" to test your code? If you don't have a server available, you can still use the SQL Server Express Edition free of charge for testing.


This is assuming your database file isn't larger than 4GB (edit: corrected from 1GB).

SQL Server supports a larger subset of SQL-92 than SQLlite, along with its own language extensions that make up T-SQL, but otherwise I think you'll find it a relatively painless transition.

share|improve this answer
+1 for SQL Express –  GrayWizardx Dec 14 '09 at 17:45
Actually it is a 4GB limit the last time I checked. –  feihtthief Dec 14 '09 at 17:56
4GB per db, 1GB RAM used per DB, 1 processor used per DB. You can still have as many active DB's as you want on the box. –  Paul Dec 14 '09 at 18:02
add comment

Go to the Erland Sommarskog's site and read everything.

Another vote for SQL Express as well.

share|improve this answer
add comment

Some of they key differences you might encounter depending on which aspect of sqlite you have been suing.

  • SQL Server columns are normally strongly typed. You can not put text data into numeric columns as with Sqlite.
  • SQL Server has support for stored procedures.
  • SQL Server allows you grant permissions to individual objects that allow you to block certain types of access to data or routines by user identity. Sqlite has no concept of permissions.
share|improve this answer
You mean, Sqlite has no concept of permissions? –  tuinstoel Dec 14 '09 at 21:02
+1. Moving from implicit to explicit data types can be a huge issue. –  RickNZ Dec 15 '09 at 14:26
tuinstoel: Yip. I meant no concept of permission. Thanks. Fixed. –  feihtthief Dec 15 '09 at 18:59
add comment

One logic difference is in tsql primary keys do not auto increase by default. (i may report other difference here)

share|improve this answer
add comment

Your Answer


