What is the difference between SQL Server Compact and SQL Server and SQL Server Standard.? - sql

When a project is created in Asp.net MVC you have the possibility to choose between different types of database, which is the recommended and what are their differences and uses.

SQL Server runs as a service, whereas SQL Server Compact is an embedded database in the same physical location as the application. SQL Server Compact is meant for a standalone application and is not intended to be shared among many users or in situations where there is a lot of concurrent access, such as with a web site.
SQL Server runs as a service and listens for requests on a port. You can have multiple concurrent connections with its use and it acts as a gatekeeper checking for permissions from incoming connections. It is meant for work groups and enterprises, and is not intended (overkill) for single-user/single-computer applications.
SQL Server Express is the free edition of the full SQL Server, and has certain limitations such as a maximum database size of 10GB, among others. SQL Server Standard is like the full edition. There are also Enterprise, Datacenter, and Developer editions.

Related

how to use a desktop software without having sql server installed on system?

consider I write a desktop software in C# for example,and it reads/writes data to/from sql server,Can I run this software on a system without having sql server installed.
I saw the two links of stackoverflow,but did not get my answer.
I want to know CAN THAT BE DONE OR NOT?
if yes,how?
thanks in advance.
Sql Server must be installed, and running, somewhere to be able to use it. However, this does not need to be on local machine. The most common scenario for Sql Server is to be installed on a dedicated server machine off in a data center somewhere, and either many clients will connect to and use the same database, or one or a few web servers will connect potentially many times per second with different requests. It's not really intended for desktop use.
If you want to build a desktop app, and you want a database to use only as a local data store, Sql Server is actually a really poor choice for this. That includes the free Sql Server Express. Don't use it for applications that will be distributed to end users, where all the data will kept on each user's local system. It is a server-class engine, and works best when it can run on dedicated hardware.
Instead, you want a desktop-class or in-process database engine, such as Sqlite, Sql Server Compact (not Express) Edition, or even MS Access.
There are many SQL engines that can be embedded in desktop application. For example SQLite, there should be one with C# interoperability.

How to share sql server 2008R2 database

I want to share my SQL Server 2008 R2 database between some computers on the same network without using a Server. How can I do so? I mean i just want two users access the same Database through A network or LAN. Both can use database,update database,delete data from database
is it possible ?
The file: mdf MS SQL can not be shared directly.
Although, once installed MS SQL any user with privileges on the database can access it.
It is not necessary to share the MDF file. MS SQL is responsible "sharing" the users enter data accessing it.
Greetings.
SQL Server can only be installed on a Windows Server system (except for the Developer's edition, and SQL Express).
However, all versions (except CE) can be shared among multiple clients. Just start up the server, make sure that the TCP protocol is enabled (using the SQL Server Configuration Tool), and that your Windows Firewall is not blocking port 1433.
A server just happens to be a term used for otherwise a "normal" computer. The designation server usually means that it is dedicated for a certain task. Technically speaking, any computer can be a server--even your own workstation while you are using it for other tasks. So, just put the database on one of the user computers which is on the network (hence accessible to desired users on the network) and go for it.... Good luck!

SSRS and SQL Server database on different server

Is it possible to install SSRS and SQL Server database on separate servers, or should these two be installed on the same server?
Thanks
In order to have Reporting Services on your application server, you would have to use a SQL-Server license. You can install just the Reporting Services section of SQLServer, but it is still technically part of the SQL Server application and requires a license for use on that processor(s).
So yes, you can install it on another server.
Yes, you can install only the advanced services, but that still counts as full server., so it requires a full license.
Yes, you can install an Express Edition (with advanced services) on another server for free.
But... the express edition SSRS can't access a non-localhost database (technical limitations of express & web edition).
You can try to circumvent that with linked-servers, but you need to duplicate every used stored procedure, view, table etc., so it's an impractical mess.
The answer to your question is thus: Technically, yes - but actually NO, not without another license.
That extra-installation is gonna cost USD 1'000+ per month.
Yes, you can install SSRS and a SQL Server database on different servers. While the default installation tries to install both, you can select to install them separately.
MSDN links:
Considerations for Installing Reporting Services
Installing SQL Server Reporting Services
From MSDN article Considerations for Installing Reporting Services:
Select Database Engine Services in the Feature Selection page to host
the report server databases. Reporting Services requires a local or
remote instance of SQL Server 2005 or SQL Server 2008 Database Engine
to host the report server databases. If you install an instance of the
Database Engine concurrently with Reporting Services, you can
eliminate a post-Setup task by installing the default configuration,
which creates and configures the report server databases
automatically. In addition to hosting the report server databases, SQL
Server relational databases can also be a source of data for reports
and models.
You could install SSRS in a new server, but to do so you would need a new license for this other server.
From Microsoft SQL Server 2014 Licensing Guide:
"The software components of a single SQL Server 2014 license cannot be separated for use in more than one OSE. If these components are running on a server other than the main database server, then an additional license is required for each additional OSE in which they are installed. For example, if the SQL Server DB is deployed in one OSE and SQL Server RS is deployed in another, both OSEs must be fully licensed for SQL Server 2014 accordingly."
Link to download the guide:
http://go.microsoft.com/fwlink/?LinkId=230678

Online SQL Server database accessed from my software

I have been working on the software using a SQL Server database. Now I am in the phase when I would like to provide this software for other people, but I don't know how to manage the database. The thing is that it is really inconvenient when installing my software to also install SQL Server at the users computer (many unexpected thing could happen).
Therefore I thought that I would pay for web hosting with SQL Server, but it is:
Expensive (just for database with few tables).
Most of the web hosting don't offer remote access to the SQL Server database (so I can't connect there from my software).
So there is my question, what would you do? My own virtual server? (even more expensive), or would you install SQL Server on users computer? Or do you know where to get only SQL Server hosting for low costs?
I don't advice using a remote SQL Server. SQL Connections strongly depend on network connection and the Internet is not "stable" enough for that. There are also performance issues that will make your application completely useless.
One important thing you didn't mention is whether different users will share the same data or will have their own. If each user will use their own data you can install a "local" SQL Server Edition (SQL Compact Edition, here is the reference)
http://msdn.microsoft.com/en-us/library/aa983341(v=vs.110).aspx
In case several users will share the same data, you shouldn't rely on the database solely. One possible approach is having an Application server that implements business logic whereas your desktop application stays actiong as a "dumb" client. This is a lot better for performance and reduce data transfer problems. You can implement webservices for you application server. This is a good solution as the data is transfered from he application server to the clients through HTTP/HTTPS and this relieves you from dealing with ports and other communication issues. An alternative is using Microsoft Communication Framework (WCF)
Good luck!

Licensing with 2 SQL Server databases

1) If I have a mobile application database written in SQL Server which has SQL Server CE databases on PDAs synchronising with it, can I get away with no licensing cost if I use the SQL Server Express Edition?
2) SQL Server <> SQL Server (Mobile Application Database) <> SQL CE
If we then complicate the model as the mobile application main SQL Server database has a service runninhg which then synchronises via .NET and web services to another database that is SQL Server based, does this cause problems with licensing, e.g. in the area of multiplexing because we know our ultimate end PDA users?
3) Oracle <> SQL Server (Mobile Application Database) <> SQL CE
How would licensing be affected if the backend system is changed to Oracle.
Thanks.
SQL Express Edition is free to use - it's got it's limitations but if your app can work inside it's constraints then it's fine to use.
You're not clear on point 2 but if all of those SQL installations are Express or CE/Compact then that's fine as well.
You license costs would come in if you put a Standard/Enterprise edition SQL Server in the mix at which point you either need to look at CAL licensing or get Proc license(s).
If SQL Express will meet your needs then there shouldn't be any licensing issues.
If you use a version of SQL that requires licensing you have to get CAL's for your known users, or go the per-CPU licensing route which doesn't require CAL's.