我們的12月試用賬號的免費服務(wù)里有一個Azure Sql服務(wù),最近正好自己做一個小工具需要一個數(shù)據(jù)庫,正好可以把它當測試庫順便體驗一把Azure Sql。
Azure SQL 數(shù)據(jù)庫
Azure SQL 數(shù)據(jù)庫是 Azure 中托管的關(guān)系數(shù)據(jù)庫即服務(wù) (DBaaS),屬于“平臺即服務(wù) (PaaS)”行業(yè)類別。
最適合用于需要使用最新的 SQL Server 穩(wěn)定功能,且開發(fā)與面市時間有限的新式云應(yīng)用程序。
完全托管的 SQL Server 數(shù)據(jù)庫引擎,基于最新穩(wěn)定的 SQL Server Enterprise Edition。 SQL 數(shù)據(jù)庫有兩個部署選項,每個選項都以 Microsoft 所擁有、托管及維護的標準化硬件和軟件為基礎(chǔ)。
在 SQL Server 中,無論是本地的還是 Azure 虛擬機中,都可使用需要進行廣泛配置的內(nèi)置特性和功能。 使用 SQL 數(shù)據(jù)庫時,可以即用即付,并使用向上或向外縮放選項獲得更強大的功能且不會中斷服務(wù)。 SQL 數(shù)據(jù)庫具有 SQL Server 所不能提供的其他一些功能,例如,內(nèi)置的高可用性、智能和管理。
以上摘自 Azure Sql 文檔
以上說的比較官方。簡單來說就是Azure提供了一個云數(shù)據(jù)庫服務(wù),它的Sql引擎自然是微軟自家的Sql Server。你大致可以認為它就是一個在線版本的Sql Server,它依托Azure提供了非常強大的高可用、高性能、可以自由伸縮等功能。
在portal控制臺找到 Azure Sql 點擊創(chuàng)建:
注意:以上配置在12月試用賬號內(nèi)是免費的,千萬不要選錯,即使選了更低級的實例也會收費。
配置完之后點擊“創(chuàng)建+查看”開始創(chuàng)建資源,等待一會后提示創(chuàng)建成功。這個時候我們的Azure Sql 數(shù)據(jù)庫就創(chuàng)建好了。
通常我們管理Sql Server數(shù)據(jù)庫的時候都會使用SSMS(Microsoft SQL Server Management Studio)進行新建,查詢等操作。那么Azure Sql 同樣支持SSMS工具進行連接并管理。
填寫完之后點擊“連接”開始嘗試連接數(shù)據(jù)庫。第一次連接會提示新建防火墻規(guī)則。 我們需要在portal上把客戶端的ip加入白名單。
連接成功后就可以像普通Sql Server一樣進行查詢數(shù)據(jù)等操作了。
新建一張表Table_1:
以上演示了使用SSMS來管理操作數(shù)據(jù),下面演示下使用.NET Ado.net技術(shù)操作下Azure Sql。使用Ado.net操作Azure Sql我們完全可以把Azure Sql當做SqlServer來使用。所以我們只要使用SqlServer的Data Provider來操作就可以了。
為了偷懶直接使用Dapper來演示,因為Dapper本身就是基于Ado.net技術(shù)實現(xiàn)的。
新建一個控制臺項目,使用Nuget安裝Dapper。
我們使用Dapper來編寫數(shù)據(jù)庫改刪查代碼。數(shù)據(jù)庫連接串可以在portal上點擊左側(cè)“數(shù)據(jù)庫連接字符串”菜單獲取。
static IDbConnection GetConnection()
{
var connstring = "x";
var conn = new SqlConnection();
conn.ConnectionString = connstring;
return conn;
}
static void Main(string[] args)
{
using (var conn = GetConnection())
{
conn.Open();
//insert
var result = conn.Execute("insert into Table_1 values (@id, @name, @birthday)", new { id=0, name = "user0", birthday=DateTime.Now });
Console.WriteLine("Run insert into {0}", result>0?"success":"fail");
result = conn.Execute("insert into Table_1 values (@id, @name, @birthday)", new { id = 1, name = "user1", birthday = DateTime.Now });
Console.WriteLine("Run insert into {0}", result > 0 ? "success" : "fail");
//select
var list = conn.Query<Table_1>("select * from Table_1");
foreach (var row in list)
{
Console.WriteLine("id:{0} name:{1} birthday:{2}", row.Id, row.Name, row.Birthday);
}
//update
result = conn.Execute("update Table_1 set Name = @name where id = @id", new { id = 0, name = "user00" });
Console.WriteLine("Run update {0}", result > 0 ? "success" : "fail");
//delete
result = conn.Execute("delete from Table_1 where id = @id", new { id = 0});
Console.WriteLine("Run delete {0}", result > 0 ? "success" : "fail");
}
Console.ReadLine();
}
寫完代碼我們直接F5運行一下,可以看到我們成功的使用Ado.net操作了數(shù)據(jù)。
通過以上我們簡單介紹并演示了如果使用Azure Sql數(shù)據(jù)庫。絕大部分時候我們可以把Azure Sql當做SqlServer來管理或者用代碼操作。這為我們從本地數(shù)據(jù)庫遷移到Azure Sql數(shù)據(jù)庫提供了非常巨大的方便。對于應(yīng)用層代碼,只需要更改連接字符串就可以了。當然Azure Sql數(shù)據(jù)庫跟本地Sql Server還是有一些差異的,在遷移前請先閱讀文檔:解析遷移到 SQL 數(shù)據(jù)庫的過程中的 Transact-SQL 差異
聯(lián)系客服