I am working in SSMS 2012. I recently discovered that 2012 built-in functions like TRY_CONVERT and DATEFROMPARTS are not recognized by my particular instance. So, I checked my database engine (at least, I think it's the engine I'm checking) via SELECT ##VERSION, and it returned Microsoft SQL Server 2008 (RTM) - 10.01.1600.22 (X64). If this is an engine problem (i.e., I'm not using the 2012 engine), how do I update / change the engine to the 2012 version?
I can see 3 factors as play here than can confuse you:
SSMS Version: SSMS is only the GUI to access SQL Server. Later version of SSMS can access earlier version of the SQL Server Engine. The fact that you are running SSMS 2012 doesn't mean you will get access to new functions in SQL Server 2012.
SQL Server Engine Version: I think this is your problem. The result you got clearly indicate it's 2008.
Compatibility level: you can run a newer SQL Server Engine as if it's an older one. So you can run SQL Server 2012 as 2008 or even 2005. In that case, even though you engine supports these new functions, the compatibility level prevents you from using them.
I think your problem is that you are accessing SQL Server 2008 through SSMS 2012. Get the proper version of SQL Server through MSDN, SQL Server Express (free) or DreamSpark( if you are a student).
Related
I have a question reharding strange behavior of Sql Server. I had sql server 2008 edition which I uninstalled and installed SSMS Express 2014 instead. However I could not perform any advanced analytics on sample northwind db i.e. lead, lag, preceding etc.
When I asked the program ##version, the output was 2008sp4.
How may it be that SSMS2014 has 2008 engine? How to fix it?
There two applications such as SQL Server and SSMS.
SQL Server is a windows service which stores data. It does not have user interface.
SSMS is an UI application which connects to SQL Server to manipulate data by T-SQL language. It has user interface.
When you execute ##version, then you get a version of SQL Server.
If you want to know your SSMS version, then just click Help -> About
I performed what I thought was an upgrade from SQL Server Express 2012 to 2014 by running the 64-bit executable. Everything seemed to be working fine during installation as it recognized my existing server instance (2012) which I presumed would be upgraded to 2014.
However, when I try to restore a 2014 DB from my web host, I get the following error:
The database was backed up on a server running version 12.00.2000.
That version is incompatible with this server, which is running
version 11.00.5343. Either restore the database on a server that
supports the backup, or use a backup that is compatible with this
server.
I definitely have 2014 installed, but when I view my instance from inside SMS 2014 it looks to still be running on SQL version 11.xxx which I presume is 2012 (the name of the instance is the same as it was when I was running 2012).
Did I do something wrong during the installation? How do I upgrade my instance to 2014 so that I can restore my DB locally?
downloadsqlserverexpress.com helps to find the correct download of SQL Server Express from MS Download Center. You need the one that contains the SQL Server Engine, not just Management Studio.
sqlserverbuilds.blogspot.com.au has a full list of SQL Server versions and builds.
Using it we can see that you are running Management Studio 2014 (build 12.0.2000.0), but you are connecting to SQL Server 2012 engine (build 11.0.5343).
Maybe you now have two engines running (both 2012 and 2014). You can check the list of running processes and verify if two instances of sqlservr.exe are running.
It should be possible to upgrade the engine in place by installing 2014 on top of 2012. I don't know why it didn't happen in your case. You could have chosen to install only Management Studio even if you had a full installer.
One long, but sure way to clean up would be to uninstall everything related to SQL Server and install 2014 again. Make proper backups of databases at first, of course.
I have a phone server running Window Server 2008. The server software is currently using Microsoft SQL Server 2012 Express Edition. I created an IVR application that has created a second database using the same SQL Server instance.
I found out post-development that the version of SQL Server installed on the server was Express and NOT Standard like I had thought. I checked the SQL Server Configuration manager and noticed that the instance is MSSQLSERVER, but it is running express. The phone system software I am using is proprietary and I cannot get in to change/modify connection strings.
My question is:
Is it reasonable to assume that upgrading from SQL Server 2012 Express to SQL Server 2012 Standard is safe? Does upgrading change the connection string, or instance name? Or is there anything I should be aware of during the upgrade? Or would it be better to just run Standard alongside Express?
Thanks!
I have read various articles saying that the connection string doesn't change, but I would like some input from someone who has actually upgraded from Express to Standard.
I'm using VS Ultimate 2013 and SQL Server 2014 Standard. I try to upgrade Pubs and Northwind databases but the operation fails with the following snapshot:
Besides that, I followed paths introduced in some corners of the net but I got no interesting results. What should I do?
Thanks
Update[Problem solved by #marc_s]:
The SQL Server 2012 Northwind database version bypassed the obstacles I had. Here's the link: http://businessimpactinc.com/install-northwind-database/
The error says
User instance flag is not supported on this version of SQL Server
You seem to be trying to use
User Instance=true
in your connection string, but that is supported exclusively in SQL Server Express - no other edition (and therefore, it's not supported on SQL Server Standard).
You will need to attach the .mdf files (or run the creational SQL scripts for those two databases) on your server instance¨and then connect to those database on the server
I use SQL Server 2008 R2 as the database engine. With my MSDN subscription, I can get SQL Server 2012 for development use. Since I noticed some cool things in 2012 SSMS, my question is that if I only use 2012 SSMS and keep 2008 R2 as the database engine, will there be any difference in scripts' generation or any other effects?
Thanks.
UPDATE 1:
Oh yes, I saw this page: SQL Server Database Engine Backward Compatibility, but it is not exactly what I am looking for.
No, there should be no ill effects.
SSMS 2012 should generate scripts that are compatible with the database version that is being actively used.