Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do I have to install sql server on each client if my software uses it?

If we develop some software in c# (or basically .Net), we don't install visual studio to any client. The client just have to have required .Net framework (1.0, 1.1, 2.0, 3.0 etc) installed and we are good to go.

Same way, if we are making making an app in VC2008, he just needs to have Visual C++ 2008 runtime (available from MS site free, about 4-5Mb). So, basically, we just need runtime environment. but there isn't any SQL server 2008 runtime (or I am not aware of it?).

So, my question is if my software is using SQL Server 2008, what runtime (or anything else) will be required on client side for it to work?

Also, one more thing, I see there is an SQL Server express edition, which I can supposedly use in deployment, but it seems kinda heavy knowing that if my software if just 5, 10 or 20Mb I need to install about a gig just so user can run it.

Lastly, if I am using SQL Server 2008 Developer Edition (which I am, or enterprise one not sure) and I installed SQL Server express on client, wouldn't it cause some problem if my software uses some features that are not supported in express edition? (say number of database, or concurrent connection, or anything).

So? What runtime is required for it? And if installing sql server express is the only option, what if I am using some features that are not supported in express edition? Surely, I can't go on doing a full install of developer edition on each client!

EDIT: In case this is of any help, my current project is a library management system, and it will be installed the client (the computer of the librarian for whom I am making this), so there is no case of server-client here. So should I install sql express on his computer? Also, as YvesR pointed out in his answer, that link only shows three editions (main ones), but http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx shows more detailed comparison. So, in this particular scenario that I just described, would it be sufficient if I just deployed and express edition on client's machine?

Now, about what I said about some functions not being available in express edition, http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx#CrossBoxScale shows that express edition is limited to a database of size 10Gb, now I know that is more than enough in the scenario I described above, but what if in some other case I need more than that? Than express edition won't do it, than how should I deploy?

Finally, http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx shows two more edition, Compact and Developer, I know about developer but what is this compact edition? And more importantly, why are these not comared or listed here?

Edit 2: Its 4Gb, the limit, not 10Gb. 10Gb is in SQL Server 2008 R2 Express and above, 4Gb in SQL Server 2008 Express.
marc_s: Thanks for that!

like image 903
Razort4x Avatar asked Jul 14 '12 06:07

Razort4x


People also ask

Can multiple SQL Server instances run on the same server?

Yes, we can use multiple instance of SQL Server of same machine/server. All instances of the database engine other than the default instance are identified by an instance name specified during installation of the instance.

How many instances can be installed SQL Server?

You can install as many as 50 SQL Server instances on a Windows Server; obviously, we do not recommend this. In a Windows failover cluster, the maximum number of SQL Server instances is reduced by half if you're using shared cluster drives. Only one of the SQL Server instances on a server can be the default instance.

Can you use SQL Server without a server?

Microsoft SQL Server can run on a network, or it can function without a network.

Does each SQL instance require a license?

Licensing SQL under the CAL model requires each instance of SQL (virtual or physical) to be licensed with a single SQL Server license. Then a choice of User or Device CALs (Client Access Licenses) are required for every user or device which can access the server.


1 Answers

If you use a SQL Server database to persist your data in your application you need

a. client-server infrastructure where your client connect to a central SQL Server via LAN

b. or use a client installed sql server edition (which is what you want I guess). For this you can use SQL Server Express edition or just a MSDE (Desktop Edition).

See for more details e.g. this blog post http://searchsqlserver.techtarget.com/tip/SQL-Server-2005-Express-vs-Desktop-Engine-MSDE or google for it, plenty of information from MS itself about MSDE.

EDIT: Since 2012 there is no more MSDE, but SQL Server 2012 Express brings a mode like MSDE did. See here: http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx

And as you can see here: http://www.microsoft.com/sqlserver/en/us/editions.aspx, there shouldn't be a function that you use that isn't available for a desktop application imho.

like image 144
YvesR Avatar answered Oct 09 '22 01:10

YvesR