New project sql server 2005 or 2008 - sql-server-2005

I'll be starting a new project (asp.net) and I'll be using sql server express. Is there a reason NOT to use sql server 2008?
P.S: I was considering Postgres 8.3 until I did some benchmarking and found out that sql server 2005 express is much faster for my needs (better integration I guess).

If the choice is between SQL Server 2005 and SQL Server 2008 with no legacy compatibility issues, you should probably go with SQL Server 2008. The jump from 2005-2008 is much smaller than the jump from 2000-2005 was and you get three years extra lifespan for your application for free. A similar question was asked in this Stackoverflow post, with a more in-depth discussion of the subject.

A reason you might not have considered: will the production hosting location support SQL Server 2008?
Otherwise there's no reason. In fact, if your still stuck using SQL Server 2005, you should be using the 2008 version of management studio! which still works against older db's

I'd prefer Sql Server 2008 because there are too many "killer" enhancements like table valued parameters, merge statement, on the fly encryption, new datetime parameters etc. Table valued parameter is a life saver improvement. If you ever had to deal with multi row insert operations, you know how painful is to do it with xml nodes or openxml methods. On the other hand, you can pass your recursive datatable as a parameter ( SqlDbType.Structured ) and the pain is gone. It's so obvious that the most exciting feature for me is new table valued parameter.

As a sidenote: DiscountASP is selling, for the same price, 300Mb on SQL2005 and 500Mb on SQL2008. So it turns out that SQL2005 is on a statup path to be considered "old legacy" software.
And it is always good to skip future migrations.
I would go with SQL2008.

I am currently using SQL Server 2008 Express for my dev machine. You could use the new T-SQL and save some good time writing those stored procedures. I have this version of SQL Server 2008 Express installed.

It depends on a lot of factors:
Will you sell installable copies to customers? If so, what kind of database engines does your customer demography have? 2000? 2005? 2008?
Are you going to host it yourself? If so, use whatever you'd like
Are you going to use a 3rd party hosting company? If so, what do they support, and how much does it cost?
Unless you're explicitly going to use 2008 features, I wouldn't worry too much about it since generic T-SQL works on all the versions. It's when you start using the new features you might get into trouble.

Update: It seems that they DO allow sql server 2008 (sales people aren't very good at technical stuff) so I'll be using sql server 2008.
Well I asked my host (I have a vps) and they allow only sql server 2005 express, not sql server 2008 express (which is kinda strange). So I'll go with 2005 for now... Thank you all for your opinions.

Related

Can I restore a backup which was on SQL Express to sql server server 2008 without any problems

I am going to do a customer SQL upgrade and they currently have SQL Express and I want to upgrade it to Microsoft SQL server 2008.
Will it be okay to restore the SQL Express backup to Microsoft SQL Server 2008?
First off, the comments seem to mention MySQL. I can see that you edited it to say SQL Express. If it is indeed MS SQL Express then yes, as SMM said it will work.
I have done this a few times before, and it worked just fine. Though rather than a backup/restore I would move the .mdf file.
This is done by detaching the DB from the Express instance and attaching it to the Server 2008 instance; this can be easily done via sqlcmd or the Studio Manager. The steps can vary based on systems(s) setup. As such, I did a google search to see if there existed a step by step guide for this rather than typing a bunch of scenarios as shots in the dark. There are a plethora of them:
I just Googled: move sql express .mdf to sql server 2008
I also found this and it would seem to be a good match for your situation and has good information:
http://www.mipsis.com/help/Moving%20SQL%20Express%20Database%20to%20SQL%20Server.pdf
Let me know how it goes, and if you need specific assistance with the process please follow up.
I have done SQL Express to SQL 2000 and SQL 2005 successfully in the (distant) past. I am sure this will work. I don't remember any specific caveats other than making sure that you don't try to go from a later version of Express to an earlier version of SQL.

Can the same SQL query be run against a SQL Server 2012 column-based table and an earlier row-based table on an earlier version of SQL Server?

I have a problem where using the column-based storage feature in SQL Server 2012 would help out a lot. There are already a bunch of people using earlier versions of SQL Server that won't be able to upgrade.
In theory, is it possible to create a table that works optimally on both?
I'm hoping that a client running any SQL Server reports could work both against a 2012 columnar instance and a non-columnar standard instance table where the only difference is the 2012 one is faster.
Is this doable?
What would I need to watch out for when reading/writing massive amounts of data in a storage-type agnostic way?
Thanks
It's definitely possible to have SQL queries that are compatible both with earlier version of SQL and with 2012. Most things should be fine unless you were using deprecated functionality in the earlier versions or the new features from 2012 (you'd probably know if you were).
Here's a link to Microsoft's summary of changes in SQL 2012 that you might need to watch out for http://technet.microsoft.com/en-us/library/cc707787.aspx.

Sql Server 2005 Express Edition Question

We have a Sql Server 2005 Standard Edition running on a Production website. We'd like to move to a cloud hosting but they only offer Sql Server Express Edition on there.
My question is, will there be any problems in moving over? We only use tables, views, stored procedures and a few user defined functions. And we also have a Backup Maintenance Plan in place. Will any if this change?
WHat other limitations/problems (if any) can we expect to have? And is it a good idea to run on Express in Production?
And I would like to add, will it be OK if we moved from SQL server 2005 Standard to Sql Server 2008 Express - what possible problems there could be with this move?
There are limitations for SQL Server 2005 Express as listed here
These include:
- max 1GB RAM only
- max DB size of 4GB
- 1 CPU
Theses restrictions may cause you a problem. See the full list in the link.
With regrd to moving from 2005 Standard, to 2008 Express, then I expect the limitations of Express Edition may be the main factor when you consider if it really is an option. The limitations for 2008 Express are similar, see here.
Hope this helps
The migration im unsure.
Express does not support triggers (fully), nor SQL scheudling.
Its size is limited to 4GB.
You can only ever have one instance with express.
It does however support Full Text and Reporting Services (in the express advanced edition)
We have plenty of clients running SQL Express due to cost. Only small pain has been the need to write a windows service for a job that could be easily run in proper SQL scheduling in the paid for the version.
Im sure there are many more differences but these are the ones im aware of, hope this helps.
I've used SQL Server Express for simple data persistence in production with no issues.
From the looks of your situation the only feature that will not be supported is backup maintenance. However, if you're hosted on a cloud, your ISP should take care of backup for you.

Will Problems Arise from Using SQL2008 to Interact w/ a SQL2005 DB on another machine?

I have SQL2008 installed on my local machine and need to view/alter/select rows and tables from a DB on a remote server running SQL 2005. Will I have any problems doing this. I have seen some people talk about setting compatibility for certain things, but this seems to only be when using new terms for SQL 2008 that don't exist in SQL 2005 is this correct?
Thanks for any help.
I assume that you're talking about using SSMS 2008 to connect to 2005 databases. You shouldn't have any problems with this at all - and in fact you'll get some benefits. SSMS 2008 has search capabilities that weren't around in the SSMS 2005 version. You won't get the intellisense when connecting to 2005 databases, but most of the other improvements in 2008 will still work.
The 2 biggest reasons for me personally to upgrade to the 2008 SSMS from 2005 are the Search feature, and also the missing-index suggestions when viewing estimated query plans.
This will work with no issues. My entire development team is setup this way currently. You will lose some features (i.e. intellisense) but other than that, it will work.

When were stored procedures introduced into the SQL Server product?

Here's a bit of a different question for you computer history buffs. Help me settle a bet between myself and a buddy of mine:
Q: When were stored procedures introduced into the SQL Server product? I need the year and/or version.
Thanks.
EDIT:
Ok, going back beyond SQL Server to Sybase
If you are asking about MS SQL Server, they have always been there, as they were there when Microsoft licensed the product from Sybase.
Stored procedures have been around since MS acquired the product from Sybase, however the closely related user defined functions have only been in since SQL Server 2000 (which replaced SQL Server 7). IMHO they were the major win on that upgrade.
As a side note, read this for the history of SQL Server by an insider.