SQL Source Control and SQL Express "Support" - sql-server

Red Gate's SQL Source Control product documentation (http://documentation.red-gate.com/display/SOC3/Requirements) states:
SQL Source Control doesn't support SQL Server 2000, SQL Express, SQL Azure or SSMS Express
I have been evaluating their product and assumed based off this statement that "doesn't support" meant "will not work". However, I have made admittedly trivial changes to a central SQL Server Standard Edition database FROM a local SQL Express edition installation.
SQL Server edition differences notwithstanding - I am wondering what pitfalls this kind of architecture would have, again, strictly from a SQL Source Control perspective. We are looking for a way to bridge the gap between our planned upgrade to SQL Server 2012 from 2008 R2, and do not want to purchase 2008 dev edition licenses knowing that we have months until we start on our upgrade path.
Is anyone implementing a dedicated database development model with SQL Express on developer machines?

I'm a pre-sales engineer for Redgate. We use SQL Express for most of the machines that we use in our own training courses for the same reason - licencing.
While it will probably work fine we don't officially support Express. The SQL Server editions that we say we support are the ones we test against. Given the number of SQL Server editions out there we only test against the ones we list on our website as officially supported. Hence we try to make it clear if you are using an edition that we do not test against.
However, assuming your dev databases are disposable and that your source of truth is your source code - which can be rolled back - and on the proviso that you understand our disclaimer that it is not officially supported, I'd unofficially say that it will probably work well enough.
Sorry for not answering this a year ago. I've just started making an effort to be more pro-active on Stack!

Related

Best suitable SQL server for VB 8 Express Edition?

I am about to start a project on VB.. For that I am using Visual Basics 2008 Express Edition.. So I just wanted to know which is the best suitable SQL Server for the same.
SQL Server 2008 was released alongside VS 2008, so one of its variants would be recommended. The Express Edition will work well. If you want to use User Instances (such as when the database file is stored in an App_Data folder for a website, you need to have Express Edition installed. In addition, if you plan to use any data related projects in an actual production environment, but don't want to spend, it's the only option that's freely available.
Of course, you might want to consider the age of the product. VS 2008 itself is 2 generations behind (at present, Jan 2013), as is SQL Server 2008. You can easily use later editions of both SQL Server and Visual Studio (in there Express Editions), and I'd usually recommend moving up to the latest that's installable on your machine.
If you're wanting to try out all of the SQL Server features, a trial installation or Developer Edition would be recommended - but for the latter, you need an MSDN license, and if you're going that far, you should seriously consider moving up from VS Express.
Microsoft SQL Server 2008 R2 hands down. It's free and you can use stored procedures, functions and such.

Is there a difference between SQL Server Express (2012) and LocalDB?

In his excellent and popular comparision chart, ErikEJ draws a distinction between SQL Server Express 2012, and SQL Server 2012 LocalDB. However, I can't find such a distinction anywhere else in the MSDN documentation ("LocalDB" isn't even mentioned in the official MS SS12 book or on the MSDN SQL Edition comparison page.) This leads me to suspect that Express and LocalDB aren't really two separate products as ErikEJ suggests, but rather just two different terms for the same thing (which would explain why, on this MSDN page, it is called "SQL Server 2012 Express LocalDB").
If there really is a difference between the products, can anyone point me to some official documentation comparing them?
OK, I think I have found the answer to my own question. (It was buried under the tabs on the SS Express product page.)
Here is a summary of the distinctives of LocalDB I found on that page:
LocalDB is a lightweight deployment option for SQL Server Express Edition with fewer prerequisites and quicker installation.
LocalDB has all of the same programmability features as SQL Express, but runs in "user mode"* with applications and not as a service.
LocalDB is not intended for multi-user scenarios or to be used as a server. (If you need to accept remote connections or administer remotely, you need SQL Server Express.)
"Express with Tools" (which includes SS Management Studio Express, Azure, etc) can be used with LocalDB or without. (The same goes for "Express with Advanced Services".)
UPDATE: I just found this useful description in Windows IT Pro (Jul '12, p.23):
LocalDB isn’t SQL Server Express, nor is it SQL Server Compact.
LocalDB uses the same sqlservr.exe engine as the other editions of
SQL Server, but it runs in user mode—not as a service. LocalDB is
used for offline development by tools such as SSDT to ensure that the
code you develop is 100-percent compatible with your production
SQL Server database.
If I am reading this correctly, LocalDB seems to be more like a configuration option of Express than an entirely separate product. So apparently if I download Express (or Express w/ Tools), I will have the option to install the LocalDB version, which is supposedly easier ("zero-configuration") than the full Express. (Update: with VS2012, LocalDB comes installed by default.)
One other important distinction, according to this post, is that "currently Visual Studio 2010 doesn't really work with LocalDB." (We have to use SS Management Studio instead, at least for now.)
*(The concept of "User Mode" or "User Instances" is a key distinctive of LocalDB. In fact, according to this post, "LocalDB can be seen as an upgrade of the User Instances feature of SQL Server Express." For more about User Instances, refer to the MSDN blogpost "What is a RANU?")
UPDATE - Feb 2021
LocalDB is SQL Server Express edition
From official documentation
Express edition is the entry-level, free database and is ideal for
learning and building desktop and small server data-driven
applications. It is the best choice for independent software vendors,
developers, and hobbyists building client applications. If you need
more advanced database features, SQL Server Express can be seamlessly
upgraded to other higher end versions of SQL Server. SQL Server
Express LocalDB is a lightweight version of Express that has all of
its programmability features, runs in user mode and has a fast,
zero-configuration installation and a short list of prerequisites.
The docs provides a very detailed comparison of features between editions.
I use a table from ErikEJ, which shows: the features and differences between SQL CE 3.5, SQL CE 4, Local DB and SQL Server 2012. According to this table the differences between Local DB and SQL Server 2012 are:
Installation size:
SQL Server 2012: 120 MB download size; 300 MB expanded on disk
Local DB: 32 MB download size; 160 MB on disk
Runs as Service
SQL Server 2012: Yes
Local DB: No (runs as process started by app)
FILESTREAM support
SQL Server 2012: Yes
Local DB: No
Subscriber for merge replication
SQL Server 2012: Yes
Local DB: No
Number of concurrent connections
SQL Server 2012: Unlimited
Local DB: Unlimited (but only local)
NB: Sorry this isn't "official documentation", but hope it's useful to the next bod as it answers the underlying query about the differences.
The major difference are Server Express run as a service while LocalDB doesn't need any server or intensive processing to run.

Move Sharepoint 2010 to point to a different database?

Has anyone here moved the database underlying a SP 2010 install from one database instance to another (same data, just hosted in another instance)?
For example. we just want to move the database to a diffrerent machine.
In addition, has anyone moved SP 2010 from using SQL Express to a higher version of SQL Server? I would like to run some proof of concept tests with SQL Express, and if all goes well, then move to SQL Standard or Enterprise.
Cheers,
Daniel
Check out the following article:
http://technet.microsoft.com/en-us/library/cc512725.aspx
I don't think you'll run into any problems, just make sure you aren't going backwards in versions between databases. Backing up a database in SQL Server 2008 and restoring in 2005 isn't easy.
I've never done this with SharePoint, but I believe it lets you specify the location of the configuration database. Then you just need to match the user permissions.
The TechNet article "Move All Databases (SharePoint 2010)" is your main guide.
Note that this article contains the following warning:
The new database server must be running the same version of Windows
Server and Microsoft SQL Server as the existing database server.
This in NOT true!
Both from my own experience in migrating SharePoint databases and talks I've had with Microsoft Primary Field Engineering, I can say this method also works when SQL Server versions differ. But only if you upgrade to higher SQL Server versions (i.e. SQL Server 2005 to SQL Server 2008 R2). I was told this scenario is also fully supported by Microsoft.
Also, don't forget to update the database compatibility level for the migrated databases. This should future-proof your databases and enable advanced SQL Server optimization.

What to consider when getting started with SQL Server?

I've got experience with MySQL, DB2, and Oracle, but aside from writing a few queries, I've never used SQL Server.
My question is a three parter:
1) For a developer, what are some good "free" client tools to look at, and why (by "free" I mean open source, freeware, or the tools that come with SQL Server itself)?
2) I plan to run Developer or Express Edition on my workstation for development, and either Standard or Enterprise Edition in the testing and production environments. What methods exist if any for transferring data between different servers and the different editions?
3) Are there any common pitfalls that someone like me (who is used to the other database systems that I mentioned) might encountered during development?
TIA
SQL Server Express with tools.
All editions have the same SQL language features and code is 100% portable between them. There are 3rd party tools to synch changes, but moving entire DBs is easy using inbuilt tools.
Nah. The problem with databases is SQL and set theory, not the choice of RDBMS. If you understand databases/SQL you'll be OK.
SQL Server Management Studio which comes with SQL Server (any editions), or you can download it separately. SQL Server Profiler which doesn't come with Express.
Management studio has tools for backup/restore database. You can also consider detach/attach method to synchronize db .
It's hard to say. But if you had Mysql experience you will be pleasantly surprised by SQL Server.
UPDATE
There are so many things that each DB vendor implements differently that it's really hard to focus on some of them. One thing I was not used before is that SQL Server doesn't let unique columns to have more than 1 NULL value(there is a workaround though)

Is SQL Server Express good enough for a developer, or should they get Developer edition?

Just wondering if it's worth it for a developer to use SQL Server 2005/2008 Developer Edition instead of the bundled SQL Server Express edition that comes with Visual Studio. I'm talking about for initial development of a website, where you need to create SQL scripts to generate the tables and things like that. I know with Express it's easy to add an .mdf file to your project and program against that, but wouldn't it be better to install Developer edition and program against a "real" database that would mimic what you're going to be using in production? That way if you're using VS Professional and can create a "database project" you can include all of your creation scripts and run them in production to recreate the environment.
If you have access to it, you're better off using Developer Edition because it supports more features and larger databases. For example, if you want to restore a 50gb database from your production server onto your workstation to do testing, you'll need Developer Edition.
Another example is if you're working with Enterprise-only features like partitioning, compression or the Resource Governor. Those features aren't available in Express, but they are available in Developer Edition.
If it is good enough for production then how can it be insufficient in development. And SQL Express is quite capable of handling fair loads (the kind of loads that would have stressed serious hardware just a few years ago).
SQL Server Express does not require licensing but has a smaller set of features.
Developing against full SQL Server (and Developer Edition matches Enterprise Edition) always leaves the chance that you rely on some feature that is not in the production edition.
At the very least all your testing (including unit testing) should happen against the edition to be used in production.
In this question, since a "full" version is being targeted for production then developer edition should be a good match, just be careful of enterprise features if you will deploy against Standard.
Personally, I think your development environment should look like as much as you can to your production environment.
SQL Server Express edition
has many limitations like size of database, supports only one processor, etc. It is the "lite" version of SQL Server
SQL Server Developer edition
is basically Enterprise edition but it cannot be used for production.
Be aware that if the success of your backend database relies on the use of enterprise features for development, and you want the same features on production, this will require enterprise license.
It depends on what you are doing. In general, I would say it is fine. If you can get a copy of Developer, I would recommend that route, but a great majority of your work can be done in Express.
Express has basic Reporting, with Advanced Services. If you go beyond the basic Reporting in the product, you will have to move up. YOu also have Service Broker. But, you will not have Analysis Services (no data warehousing) or SSIS (no ETL). If you need either of these features, you have to go to Developer.
You will also not have some of the BI features, as the Express Manager is missing many of the bits in the full SQL Management Studio and BI Developer. If you need these, you will need SQL Server Developer.

Resources