I developed software which requires the MSSQL database in the backend. So I need to include the Microsoft sql setup within my application setup file. But when referring the license terms and the Microsoft’s knowledge base article, found conflicts as bellow.
In the license terms under the ‘Scope of License’ there mentioned “You may not publish the software for others to copy”.
But in the knowledge base “https://technet.microsoft.com/en-us/library/dd981032(v=sql.100).aspx” I found “Microsoft SQL Server 2008 Express is a robust, freely distributable relational database management system”.
So by seeing these 2 statements I am confused whether I can include sql server setup in my application or not. Please any help would be appreciated.
Edit:
Sql server used is MSSQL server 2008 (since it supports windows XP)
Redistribution of SQL Server Express is available for free.
Register for SQL Server Express redistribution
SQL Server comes with different editions like Express, Devloper, Standard..etc.
Among all these editions, Express edition is free for learning and developing small applications.
Reference:
http://www.quackit.com/sql_server/sql_server_2008/tutorial/sql_server_editions.cfm
https://msdn.microsoft.com/en-us/library/ms144275(v=sql.100).aspx
Related
I have a spring batch application which reads data from SQL server. I would like to write an integration test against an embedded db which supports TSQL.
Exp: My main application has some queries which uses "for json path"
I am looking for an embedded db where I can test in memory.
PS: I tried H2 and looks like it does not support TSQL.
Please download this
https://www.microsoft.com/en-us/download/details.aspx?id=30709
Microsoft SQL Server Compact 4.0 is a free, embedded database that software developers can use for building ASP.NET websites and Windows desktop applications. SQL Server Compact 4.0 has a small footprint and supports private deployment of its binaries within the application folder, easy application development in Visual Studio and WebMatrix, and seamless migration of schema and data to SQL Server.
FYI -
Looks like Microsoft SQL Server JDBC Driver does not support connecting to SQL
Server Compact.
How to use SQL Server Compact Edition (CE) from Java?
https://social.msdn.microsoft.com/Forums/en-US/4d25a17f-6dda-4bec-8a92-f068594553ef/java-and-sql-server-compact-edition?forum=sqlce
Perhaps you can use SQL Server Express LocalDB.
I do not know about its technical details, however. I have personally not (yet) used it in a development project. Perhaps it cannot be considered to be an embedded database like SQL Server Compact Edition is. But a quick search on Internet does indicate that it could be accessed from/with Java.
Regarding managing LocalDB databases with SQL Server Management Studio... Contrary to what is stated in the official documentation, I did succeed to connect to LocalDB using SSMS (version 18.9.1). I only needed to enter (LocalDb)\MSSQLLocalDB as the server name in the connection dialog and use Windows Authentication.
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!
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.
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.
As far as I understand, due to license reqirements all web applications, which use MS SQL Server, use SQL Server Express (free) or SQL Server web edition (processor license).
Is it so?
What are other specific features of SQL Server usage for web app?
Essentially. You use a SQL Server Processor license when you don't want to have to buy Client Access Licenses.
A complete breakdown of the SQL Server Licensing schemes is here:
http://download.microsoft.com/download/1/e/6/1e68f92c-f334-4517-b610-e4dee946ef91/2008%20SQL%20Licensing%20overview%20final.docx
SQL server allows you to use CALs only when you have identifiable users. When your connections are initiated from a public website where users don't log in, but browse anonymously, you're required to license SQL Server by processor, not by user.
You can use any edition for web development.
You can start with 100% free express edition. Then upgrade to next level. The licensing is very flexible and the most you will need for web development is Standard edition.