0

I'm using a sqlServer database that has stored procedures, and I want to use an in-memory database to unit test my code.

I've looked at a few - including VistaDB which looks amazing but expensive - and Blackfish seems to be the only possiblity so far. Before using it though i'd like to know exactly how compatible it is with TSQL - obviously if I have a lot of existing stored procedures these will use TSQL, so it's important that the in-memory db I use can handle this.

Thanks

rozza
  • 927
  • 2
  • 11
  • 24

1 Answers1

1

Short Answer: Not Very

Long Answer:

Whilst Blackfish is SQL-92 compliant, you’re bound to run into stuff that worked on your T-SQL database that won’t work on BlackFish.

I'd strongly recommend SQL Server Compact 4.0 (or Express at a crunch), Compact can be easily bundled, has a tiny footprint (3mb installer? [18mb on disk ish]).

For instance, T-SQL Flow control might differ to Blackfish flow control - not really relevant for selects, inserts & updates etc, but if you have T-SQL logic gates in stored procedures, i don’t think these will port to Blackfish? Blackfish supports stored procedures, but they are compiled in other native languages (Delphi mainly). Good example from the documentation:

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/bfsql/storedprocedures_xml.html

Very different from the T-SQL procedures used in MS SQL

HeavenCore
  • 7,533
  • 6
  • 47
  • 62
  • But to my knowledge, SQL Server Compact doesn't support stored procedures.... Express would be worth a look if it runs in-memory... – rozza Mar 02 '12 at 15:44
  • That's correct unfortunately, SQLce does not support procs whilst Express does - but Express would need a full instance running (80+ MB on disk). I see your dilemma, something’s got to give. Either re-write your procs to the application level, or use SQL Express and abandon your "In-memory" requirement – bear in mind SQL Express can be distributed quite easily, even with Click Once etc – HeavenCore Mar 02 '12 at 15:52