标签: azure-sql-database

SQL azure中的参考blob存储数据

我只是想知道是否可以在SQL Azure表列中引用azure blob存储数据?

例如,假设我有一个表叫用户在我的SQL Azure数据库,在表中的一列UserImage和,而不是创建UserImage一个varbinary(MAX),并在表中的图像数据直接存储,我反而想存储的图像数据在blob存储中,获取对blob数据的引用并将该引用存储在数据库的UserImage(varchar??)列中,然后以某种方式,当从Users表中读取行时,使用引用从blob存储中访问关联的图像数据那个数据.

我问这个是因为blob存储使用比直接在SQL Azure中的二进制/ blob数据便宜得多.

azure azure-storage azure-storage-blobs azure-sql-database

8
推荐指数
2
解决办法
3493
查看次数

如何在sql azure中设置数据库的权限?

有谁能告诉我如何在SQL Azure中授予数据库权限?

当我执行create table query时,我最终得到以下消息:

数据库testDB中的CREATE TABLE权限被拒绝

提前致谢 :)

c# azure azure-sql-database

8
推荐指数
2
解决办法
8915
查看次数

在SQL Azure上授予执行权限

我最近将数据库迁移到SQL Azure.当我尝试在SQL Azure上的此数据库上执行存储过程时,我收到以下错误:

The EXECUTE permission was denied on the object 'Log_Save', database 'MyDatabase', schema 'dbo'.
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何在SQL Azure上为存储过程(以及对表的读/写访问)授予EXECUTE权限?

谢谢!

azure-sql-database

8
推荐指数
2
解决办法
1万
查看次数

如何使用EF Model First数据库架构升级来避免数据丢失?

这是一个很长的问题,但如果我能就此得到一些好的建议,我将非常感激.简而言之,我正在寻找一种用于MS SQL数据库模式的版本升级的好方法,该方法还要求将数据从已删除的表移动到新表中.

我认为Stack Overflow是这个问题最合适的地方(不是dba.stackexchange.com),因为在它的核心,对于使用Entity Framework的.NET开发人员来说这是一个问题,而这个数据库部分主要由自动生成的sql组成.脚本.


背景

.NET应用程序和SQL数据库在Azure中运行(工作者角色中的应用程序和Azure SQL中的数据库).到目前为止,版本升级工作正常,因为所有数据库架构更改都很简单(如添加新列).但是,从现在开始,我还需要处理在升级期间将数据从一个表移动到另一个表.(我能够通过创建一个新数据库来临时修复此问题,使用旧数据库中的数据生成脚本并手动编辑脚本以使其适合新模式,但我希望有更好的方法).

我使用Entity Framework,我使用Model First.实体和关联在Visual Studio数据模型设计器中定义,这种方法非常适合我的应用程序.

我使用dacpac来升级Azure SQL数据库,这种方法一直运行到现在(但现在我将丢失数据,所以现在我必须找到一种方法将数据移动到新表).

我希望我可以继续使用实体框架并在设计器中定义实体/关联,但如果需要,可以从dacpac升级转换到另一种技术.

升级方法直到现在

  1. 我在设计器中添加了新实体(表),关联(关系)和属性(列).
  2. 我右键单击,选择"从模型中生成数据库...",这将生成一个.sql脚本,它删除旧的数据库对象并创建新的数据库对象.
  3. 我创建一个空数据库并运行脚本来创建表/键等.
  4. 在SQL Server Management Studio中,我右键单击数据库并选择"任务 - >提取数据层应用程序...".当向导完成时,我得到了我需要的dacpac(实际上我现在可以删除数据库,因为我只创建了它才能获得dacpac文件,因为我不认为我可以在Visual Studio数据模型设计器中生成它) .
  5. 我右键单击Azure SQL数据库并选择"任务 - >升级数据层应用程序..."并按照向导进行操作.到现在为止,我从来没有数据丢失,所以这个工作正常!

现在的情况

这是一个简单的例子来说明这个问题,但是从现在开始我似乎会经常进入几乎相同的情况.查看下图中的旧版和新版架构.假设数据库中已有数据.我需要ImageFile中的数据最终在ImageFileOriginal或ImageFileProcessed中,具体取决于IsOriginal布尔/位值.使用"升级数据层应用程序"我将收到有关数据丢失的警报.你会建议采用什么方法来解决这个问题?正如我之前所说,如果需要,可以将dacpac升级转换为其他技术.

旧架构 新架构

我已经阅读了有关Visual Studio数据库项目,Fluent Migrator,Red Gate和实体设计器数据库生成Power Pack(它不支持Visual Studio 2012),但我没有找到一个好办法.我承认我没有花一整天时间深入研究每种技术,但我当然花了一些时间尝试找到一种好的方法.

entity-framework database-migration ef-model-first dacpac azure-sql-database

8
推荐指数
1
解决办法
1590
查看次数

Azure SQL等待操作超时

我准备放弃Azure SQL以解决可靠性问题,但我想我先在这里查看.我在SQL Azure上遇到了几个零星的超时错误.这不是连接字符串问题 - 我们谈论的是几个已经运行了很长时间但没有问题的应用程序.确切的错误是:

System.ComponentModel.Win32Exception: The wait operation timed out
Run Code Online (Sandbox Code Playgroud)

目前,我正在考虑过去30分钟左右的其中300个.我运行了http://blog.sqlauthority.com/2010/05/14/sql-server-find-most-expensive-queries-using-dmv中提到的DMV查询,以了解发生了什么,并发现:

在此输入图像描述

根据文档,602,382是微秒,或大约602毫秒,所以显然我的数据库使用要求非常低.我有一种感觉,这纯粹是Azure SQL的过度租赁问题.还有其他可能的解释吗?任何潜在的解决方案都不能让Azure SQL成为更环保的牧场(例如专用的SQL VM)?

performance azure-sql-database

8
推荐指数
1
解决办法
3952
查看次数

Azure SQL数据库 - 速度慢

我目前正在使用SQL Azure,我意识到当我将它与Sql Server Management Studio或Visual Studio 2013 Data Tools一起用于设计数据库时,它非常慢.有没有人有同样的问题?我尝试将数据库扩展到此配置但它仍然工作缓慢:

服务器层:标准.表现水平:S2.

问候,

罗德里戈

azure-sql-database

8
推荐指数
1
解决办法
1721
查看次数

Azure中的ExecuteSqlCommand事务

我使用EF 6与Azure Sql数据库.根据Microsoft,不支持用户启动的事务(参考:https://msdn.microsoft.com/en-us/data/dn307226#transactions)

现在,使用EF 6,ExecuteSqlCommand默认情况下包含在事务中:

从EF6 Database.ExecuteSqlCommand()开始,默认情况下会将命令包装在事务中(如果尚未存在).(参考:https://msdn.microsoft.com/en-us/data/dn456843.aspx)

鉴于我的情况,我应该总是抑制这样的ExecuteSqlCommand事务行为:

context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, @"TRUNCATE TABLE Person;");
Run Code Online (Sandbox Code Playgroud)

c# entity-framework azure azure-sql-database

8
推荐指数
1
解决办法
1273
查看次数

Bacpac出口错误

我正在尝试将sitecore数据库导出到bacpac,以便它可以还原到SQL Azure.

但是,我收到以下错误:

在用作数据包一部分的模式中找到了一个或多个不受支持的元素.

Error SQL71564: The element Extended Property: [dbo].[Fields].[MS_DiagramPane1] is not supported when used as part of a data package (.bacpac file).
Error SQL71564: The element Extended Property: [dbo].[Fields].[MS_DiagramPaneCount] is not supported when used as part of a data package (.bacpac file).
Error SQL71564: Table Table: [dbo].[ArchivedFields] does not have a clustered index.  Clustered indexes are required for inserting data in this version of SQL Server.
Error SQL71564: Table Table: [dbo].[ArchivedItems] does not have a clustered index.  Clustered …
Run Code Online (Sandbox Code Playgroud)

sql-server sitecore bacpac azure-sql-database

8
推荐指数
2
解决办法
4909
查看次数

如何使用OData公开Azure Sql Server数据库

有没有办法创建Azure Sql数据库,然后将其作为rest API公开,以便您可以使用OData调用对CRUD表的restful调用?

odata azure-sql-database

8
推荐指数
1
解决办法
8894
查看次数

更新Windows后出现SqlClient错误 - "传入的表格数据流(TDS)远程过程调用>(RPC)协议流不正确"

自从将Windows 10更新到1803以来,我已经开始接收此错误,只要我运行一个EF查询,该查询连接一个带有标量参数的表值函数.

消息:传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.参数2(""):数据类型0x00未知.

堆栈跟踪:位于System.Threading.Tasks.Task.Execute()的System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()中的System.Data.SqlClient.SqlCommand.<> c.b__180_0(Task1结果).从抛出异常的先前位置开始的堆栈跟踪结束---在System.Data.Entity.Core.EntityClient的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处.Internal.EntityCommandDefinition.d__c.MoveNext()

我在.NET 4.6框架项目中使用Entity Framework v6.2.我验证了相同的代码在使用Windows 10 1709的另一台计算机上执行没有问题.我将计算机更新到Windows 10 1803而没有其他更改,我开始收到上述错误.导致错误的代码:

var query = from fs in db.ViewWithInformation
            join e in db.GetEventsForPerson(personnelId) on fs.Event_Id equals e.Event_Id
            where !fs.Is_Deleted
            select fs;
return await query.ToArrayAsync();
Run Code Online (Sandbox Code Playgroud)

如果我针对db.GetEventsForPerson删除连接,则查询将运行.上面的EF查询生成的SQL在SSMS中运行良好.

编辑5/15/2018:我已经确认这是由.NET Framework 4.7.2特别引起的.我在Windows 10 1709计算机上手动安装了.NET 4.7.2,错误再次启动.

sql-server sqlclient azure-sql-database .net-4.7.2

8
推荐指数
1
解决办法
2008
查看次数