Does FluentMigrator work with SQL Server 2014 - sql-server

Does Fluent Migrator not support SQL Server 2014?
I am getting below exception -
“The major version of the database server could not be determined or is not supported by FluentMigrator.”

Update: As of 2014-12-31 Fluent Migrator does support SQL Server 2014.
No, As of today (15.Dec.2014) Fluent Migrator doesn't support SQL Server 2014 version.
You can verify it in below wiki page.
https://github.com/schambers/fluentmigrator/wiki/Supported-Databases

Both yes and no. There is no explicit support yet but for 90% of features, it is the same code for Sql Server 2005, 2008, 2012 and 2014. If you specify the provider (see Command Line options here) as Sql Server 2012 then your migrations should work.
migrate --configPath "WithConnectionString.config" -conn "Test.Connection" --provider sqlserver2012 --assembly ".\Migrations\bin\Debug\Migrations.dll"
New features in Sql Server 2014 will not be supported but at this stage every new release of Sql Server contains few new features that affect FluentMigrator. For example, the only new features that Sql Server 2012 introduced and that affected FluentMigrator were sequences and clustered indexes. Here is the Pull Request for Sql Server 2012.
If there is a feature from Sql Server 2014 that you want support for then create an issue on Github!
EDIT: I installed Sql Server 2014 and tested that it works with the provider set to SqlServer2012. And it does!

Related

What is the Hibernate dialect for Microsoft SQL Server 2014?

I have searched online but could not find the Hibernate dialect to use for Microsoft SQL Server 2014. Which dialect should be used?
The latest dialect for Microsoft SQL Server is SQLServer2012Dialect, which is the one you should use for now. See this link for all supported dialects.
Actually, there was a bug where Hibernate defaulted to the SQL Server 2000 dialect when SQL Server 2014 was used. This bug has been resolved (in versions 5.2.0 and 5.1.1) and the solution was:
Added version 12 to the switch statement so that SQLServer2012Dialect is now returned by default, as SQL Server 2014 is much more similar to SQL Server 2012 than SQL Server 2000
In time, a SQLServer2014Dialect will probably appear, which of course mean you would switch to that dialect then.

Migrate SQL Server 2008 databases to 2016

We are processing to migrate SQL Server databases from 2008 to 2016.
We are searching now for expired function or utilities used in SQL Server 2008 and not available in SQL Server 2016 before migration.
Do you have reference for that?
Here are few features removed in SQL Server 2016 (from MSDN):
SQL Server 2016 is a 64-bit application. 32-bit installation is discontinued, though some elements run as 32-bit components
Compatibility level 90 is discontinued. For more information, see ALTER DATABASE Compatibility Level (Transact-SQL).
Though you are migrating from SQL Server 2008 directly to SQL Server 2016, you need to consider the removed features of SQL Server 2012 & SQL Server 2014 as well
Discontinued Database Engine Functionality in SQL Server 2014
Discontinued Database Engine Functionality in SQL Server 2012

Does my sql code go unavailable when I upgrade my SQL Server from 2008 to 2014?

I have a server running SQL Server 2008 Enterprise version which has a lot of SQL Codes and I want to upgrade it into SQL Server 2014 Enterprise version. But I don't know what will happen after I upgrade the SQL Server. Will there any SQL Code go unavailable/error? Will it run correctly after upgrading?
SQL Server 2008/2014 is a tool. It has got nothing to do with data/procedures/views etc. Data for SQL Server is stored in the form of .mdf files. So, no, your data or procedurers wont be touched. But yes lot of features are going to be deprecated in SQL Server 2014 when compared to SQL Server 2008. Full list is here. You should go through the list and find a suitable replacement for every deprecated item before migrating.

SQL Server 2012 SSMS with SQL Server 2008 R2 database engine

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.

SMO and Sql Server 7.0

Does anyone have a definitive answer to whether Sql Server Management Objects is compatible with Sql Server 7.0?
The docs state:
Because SMO is compatible with SQL Server version 7.0, SQL Server 2000, SQL Server 2005, and SQL Server 2008, you easily manage a multi-version environment.
But trying to connect to a Sql 7 instance gets me:
"This SQL Server version (7.0) is not supported."
Has anyone been successful in getting these 2 to play nice?
you can use SMO to connect to SQL Server versions 7, 2000, and 2005, but SMO does not support databases set to compatibility levels 60, 65, and 70.
for SQL Server 7.0 the compatibility level is 70
Obviously this is conflicting information...I assume if your compatibility level of your DB is 70 you can not connect.
To check run: EXEC sp_dbcmptlevel 'databasename'
Looking through this link, it seems you might be able to change the compatibility level by running this:
EXEC sp_dbcmptlevel 'databasename', 80
Obviously make a back up before changing anything.
Looks like the docs are wrong (and have continued to be wrong for the last 3+ years!). I found this snippet with Reflector in Microsoft.SqlServer.Management.Common.ConnectionManager, Microsoft.SqlServer.ConnectionInfo
protected void CheckServerVersion(ServerVersion version) {
if ((version.Major <= 7 || (version.Major > 9)) {
throw new ConnectionFailureException(
StringConnectionInfo.ConnectToInvalidVersion(version.ToString())
);
}
}
So, it looks like only SQL 2000 and SQL 2005 are supported. Presumably, SQL 2008 (version 10) has updated SMO assemblies.
Bummer - guess it's back to SQL-DMO for this project.
Just to follow up on your commment SQL 2008 does have its own SMO package which supports SQL 2000, 2005 and 2008 which is actually definitively documented on their download page! And you're right you can't connect SQL 2005 SMO to SQL 2008.
There are some nice updates updates in Version 10 of the SMO in that if you access properties that do not existing on the version of SQL that you are connect to you get a sensible "This property is not available on this Version of SQL" exception or words to that effect.
Microsoft SQL Server 2008 Management Objects
The SQL Server Management Objects (SMO) is a .NET Framework object model that enables software developers to create client-side applications to manage and administer SQL Server objects and services. This object model will work with SQL Server 2000, SQL Server 2005 and SQL Server 2008.
Sorry for the late answer... there is partial support for SQL 2000 and SQL 7

Resources