Does or does not SQL Azure support CLR assemblies? - sql-server

We've got a couple of on-premises dbs and we're seeing if we can migrate them to SQL Azure. Some of those dbs have a couple of user defined functions written in C# in an assembly (SAFE). After running a search, I've found a couple of posts which contradict each other. Some say that v12 supports CLR code. Others say it doesn't. So, here are my questions:
Does V12 supports embedding clr assemblies?
How can we export the generation script for azure with the assembly? Whenever we set the export option to azure we end up getting an error saying that clr user defined functions are not supported in azure.
Thanks guys!
Luis

CLR Functions are not supported in Azure:
Check here:
Azure SQL Database Transact-SQL differences
Under unsupported features it mentions ".NET Framework CLR integration with SQL Server"
I believe there may be some confusion as to whether it does or doesn't support them as they used to in one version, then they removed support.
Here is a link detailing the fact they were supported, but got pulled, apparently due to a security issue:
Breaking News, Literally: SQL CLR Support Removed from Azure SQL DB

Azure SQL support now CLR using Azure SQL managed instance.
https://learn.microsoft.com/en-us/azure/sql-database/sql-database-managed-instance-transact-sql-information#clr

Using managed instance you can have almost all support benefits of an on premise including C# CLR. To access the instances you have to use SSMS Preview 6 of SQL Server Management Studio 18 or TSQL.

You have 2 choices:
Use Azure SQL managed instance (very expensive, more than $1000 per month)
Create an Azure VM and install SQL Server on it (much cheaper, less then $20 per month)

Related

Am I using SQL Server or SQL Azure?

I have this issue which I have asked about here
In all my programmatic attempts to fix the issue above, things like this are displayed in the messages box:
Reference to database and/or server name in
'master..sp_addsrvrolemember' is not supported in this version of SQL
Server.
How do I find the version of SQL Server,I am using? It seems nothing is supported by my version.
Is the issue can be that - I am not using SQL Server somehow? I am using Microsoft Azure to host my database. Does that make you use SQL Azure? In SSMS, in the Object Explorer, at the top where it says the server, it says gonskh1ou0.database.windows.net(SQL Server 13.0.201 - Amber). Amber is my user name, and is the administrator. SQL Server 13.0.201 is not in this list of SQL Server build numbers
Yes, you are using the Azure version of SQL Server, which does not support sp_addsrvrolemember.
(Do note that that stored procedure is deprecated and you should be using ALTER SERVER ROLE, which is supported at least in Azure SQL Data Warehouse's preview.)
The only way to run a full SQL Server is to create a VM and run it there yourself. The Azure version will never be the full version.
You are using Microsofts implementation of SQL server, the version number and name(Amber) supplied are indeed correct. Depending on the level of Azure account you are using, this server is usually configurable.
Microsoft Azures platform contains some very nice support and I would advise consulting directly with a rep. They have always been very helpful and quick to help in regards to configuration issues, even performing the configurations for you if required.

Using Microsoft Sync Framework to synchronize two identical SQL Server 2012 databases using Change Tracking

I'm currently evaluating options for synchronizing two identical databases that will be deployed on two different SQL Server (1) instances. I've started with the Microsoft Sync Framework and if it does not fit my requirements I'll check SQL Replication.
Anyway, long story short, I'm trying to get a basic scenario to work using the Sync Framework but unfortunately all of the examples and tutorials I've seen online use the SQL Provisioning Provider which adds certain tables, stored procedures and triggers to the database - I want to avoid this, obviously.
I read somewhere that the Sync Framework can use SQL Server's built-in Change Tracking features, but this only works when the client is SQL CE (example). But all what I have read so far seems to be out-dated. I couldn't find anything that is relatively recent about the topic. So I was wondering whether the above is still valid or the Sync Framework added support for the built-in Change Tracking with SQL Server 2012 (or 2014).
In case this scenario is still not supported until this day, could someone refer me to an example (or at least some hints) of how I could develop a custom provider to use Change Tracking on both the client and the server?
(1) SQL Edition is not a constraint. Even SQL Server Enterprise Edition is an option.
support for SQL Change Tracking only works for the older SqlCeClientSyncProvider/DBSyncProvider/SyncAgent, in short you can only use to sync SQL Ce with a SQL Server configured for SQL CT.
the newer sync providers do not support SQL CT.
there used to be a sample SQLExpressClientSyncProvider from MS that has been pulled out from the download site due as it has some issues.
Writing a custom sync provider is not easy, if you can go for SQL Replication, that will be an easier route.

Manage Azure SQL Databases

For some reason the SQL Management Tool doesnt work with Azure SQL Databases. This is nothing short of painful if you use the designers and diagrams to design your database.
I'm sure I'm not the only one who has stumbled at this point and would like to know what tool I can use to visual design and maintain the database.
SQL Server Management Studio supports Azure SQL DB. Step-by-step docs are here: http://azure.microsoft.com/en-us/documentation/articles/sql-database-manage-azure-ssms/
You will have problems if you have not configured firewall rules for your database to include your client IP range. What sort of errors are you experiencing?
The latest update to SSMS supports full design and edit with a few minor things missing.

Strategy for Data Access Layer development that escalates from sqlite to SQL Azure

I want to start a rather big project (in the end). My tool of choice is basically ASP.NET MVC/WEB Api.
I would like to develop this in the beginning by using SQLite or SQL Developer edition.
Then when i go live i would plan to go to a shared hosting by using SQL Server 2012/2014 instance.
My target is that if everything is ok to convert to cloud and Azure.
So my plan that i would like to enhance/verify is:
Frontend:
Since my knowledge of AngularJS/Knockout e.t.c is lomited. I will start by using the normal Jquery/web API approach and gradually i will conver tot latest best practices and standards.
Backend:
Program to an Interface. I will have an interface for my DAL
Implement different interface for my different cases (sqlite/sql server/azure e.t.c)
In order to get a fast start to building it i would start with a good domain class design and then head to SQLite in combination of a light ORM (Dapper) in order to have my logic up and running fast.
This post: SQl Azure offline , suggests that i could start developing for sql azure right away, but i don't know if i can afford from the beginning to go to azure.
Sql Azure is basically the same as Sql Server 2014. If you start with the free SQL Server Express edition then you will have very few problems moving to SQL Azure later, especially if you use a tool like the SQL Server Migration Wizard and pehaps setup a free Azure trial account so you can test as you go?
You can just use your local Sql edition as mentioned by #Neil Thompson, If you are using SQL Server Database Project, there is an option to target your deployment to SQL Azure database instead of full version of Sql Server,
I have been using above option without much problem.
Sql Federation in Azure which is I think the only major non-supported feature in on-premise/local Sql edition that you would need Sql Azure for day-to-day development/testing.

Is there a definitive list for the differences between the current version of SQL Azure and SQL Server 2008?

I am a relative newbie when it comes to SQL Azure!! I was wondering if there was a definitive list somewhere regarding what is and is not supported by SQL Azure in regards to SQL Server 2008? I have had a look through google but I've noticed some of the blog posts are missing things which I have found through my own testing:
For example, quite a lot is summarised in this blog entry http://www.keepitsimpleandfast.com/2009/12/main-differences-between-sql-azure-and.html
Common Language Runtime (CLR)
Database file placement
Database mirroring
Distributed queries
Distributed transactions
Filegroup management
Global temporary tables
Spatial data and indexes
SQL Server configuration options
SQL Server Service Broker
System tables
Trace Flags
which is a repeat of the MSDN page http://msdn.microsoft.com/en-us/library/ff394115.aspx
I've noticed from my own testing that the following seem to have issues when migrating from SQL Server 2008 to the Azure:
XML Types (the msdn does mention large custom types - I guess it may include this?? even if the data schema is really small?)
Multi-part views
I've been using SQL Azure Migration Wizard v3.1.8 to migrate local databases into the cloud.
I was wondering if anyone could point to a list or give me any information till when these features are likely to be included in SQL Azure.
If you can get a hold of the February issue of SQL Server Magazine, there are two articles (I believe) that outline what Azure supports in relation to SQL Server 2008.
I was at an Azure training yesterday where it was confirmed that XML schemas are not supported. You may also find the e-clinic here https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=168190&tab=overview useful.
This document is a little more detailed than the links you listed. It's dated September 2009 but I believe is still mostly accurate.
http://go.microsoft.com/?linkid=9703594
One key paragraph from this document is:
Analysis Services, Replication, Reporting Services, and Service Broker are not currently provided as services on the SQL Azure.

Resources