有没有人知道为什么SQL Azure不支持with nolockSQL语句.微软是否有计划在未来支持这一点?
我正在寻找一种简单但强大的解决方案来配置独特的零件号.我一直在考虑使用GUID来识别来自不同客户端(台式机,电话等)的请求,然后根据请求GUID的插入日期时间顺序分配PN.
问题:SQL Azure是否适合使用?有一个标准的方法吗?
谢谢.
我在Visual Studio 2010中使用现有项目,使用.mdf(SQL 2008 Express)使用现有数据库的ASP.NET MVC 3.做了一些谷歌搜索,我感到困惑,因为有太多的资源.你能帮我指出一下简单的教程链接吗?
我正在研究在SQL Azure数据库上实现透明数据加密(TDE).Azure将备份创建为.bacpac文件.TDE的文件提到了这一点
"启用了TDE的数据库的备份文件也使用数据库加密密钥加密."
该文档没有具体提及有关.bak或.bacpac文件的任何内容.有没有人有经验,更重要的是官方文档,TDE会加密.bacpac文件?
任何指针和建议将不胜感激.
更新:我能够在TDE Azure中找到官方文档.在页面的底部,它表示.bapacpac文件不是ecrypted.
我觉得这对于SQL Azure上的TDE来说是一个巨大的缺点,因为我真的很喜欢这种功能可以防止.bak文件在没有TDE中使用的证书/密钥的情况下在另一台服务器上恢复.
据我所知,将Azure数据库从已退役的层级扩展到新层只是在Azure门户中使用scale功能的问题.
在从退役阶段扩展到新阶层时,我无法在任何地方找到的是关于是否需要任何连接字符串更改(或任何其他可能导致不可用的问题)的明确答案.
我有一个需要升级的生产数据库,服务中断会非常糟糕.
这里解释了这个的语法:
如何首先通过Enity Framework代码以编程方式创建基本/标准版类型的Sql Azure数据库
但是,我的代码实现如下:
public static bool CreateDatabaseIfNotExists(string connectionString, string databaseName)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(
string.Format("SELECT * FROM sys.databases WHERE [name]=\'{0:S}\'", databaseName),
conn);
cmd.CommandTimeout = int.MaxValue;
if (cmd.ExecuteScalar() == null)
{
SqlCommand cmd2 = new SqlCommand(
string.Format("CREATE DATABASE [{0:S}];", databaseName),
conn);
cmd2.CommandTimeout = int.MaxValue;
cmd2.ExecuteNonQuery();
return true;
}
else
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我应该把基本字符串放在哪里,因为我不知道放在哪里.
我正在使用Azure SQL DB自动导出功能.一切都像魅力一样,但最近它开始失败:
XXX:XXX于2015年8月2日上午4:11:22自动SQL导出失败.已创建临时数据库副本,但无法将此副本导出到.bacpac文件.
我已经检查了我的Azure SQL Server的"导入/导出历史记录",并看到了以下错误详细信息:
服务操作期间遇到错误.Microsoft Azure SQL数据库v12不支持索引文档类型.xml.
我不知道它是什么.可能它与我正在使用的FTS功能有关,但是自从我上次成功实现自动导出以来,我没有对我的数据库做任何事情,所以我想这一定是Azure问题.
看起来尽管我们根本没有使用事务,但我们从SQL Azure中获得了随机死锁错误.
当SQL Azure陷入僵局时,是否没有跨国情况?
看起来当我们运行一批UPDATE查询时,它就像批处理是一个大事务.
所有更新都是通过id并更新一行.
sql-server deadlock azure database-deadlocks azure-sql-database
对于批量插入,我有一个数据文件和一个格式文件(xml);
这正在使用批量插入语句处理OnPremises,但是在Azure中,格式文件似乎有问题。以下是我已采取的步骤
设置存储访问
创建存储的数据库范围凭证
CREATE DATABASE SCOPED CREDENTIAL StorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'This is my secret' (Shared Access Signature Key)
Run Code Online (Sandbox Code Playgroud)
创建一个外部数据源
CREATE EXTERNAL DATA SOURCE Storage
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storagename>.blob.core.windows.net/<containername>',
CREDENTIAL = StorageCredential
);
Run Code Online (Sandbox Code Playgroud)
文件查询(批量插入或Openrowset)
BULK INSERT <Schema>.<Table>
FROM 'File.dat'
WITH (
DATA_SOURCE = 'Storage',
FORMATFILE = 'File.xml'
)
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM OPENROWSET(
BULK 'File.dat',
DATA_SOURCE = 'Storage',
FORMATFILE = 'File.xml'
) AS DataFile;
Run Code Online (Sandbox Code Playgroud)
它们都无法处理错误;
“无法批量加载,因为文件不完整或无法读取” …
我在Azure中创建了一个“ Web App + DB”,并将ASP.NET API部署到了它。对于SQL数据库,我选择了“免费计划”。
现在,在运行API几天后(仅写入了十几个数据集并进行了约30个API调用),Azure / Microsoft将定价层从“免费”更改为“ S0”,并将另一个API从“免费”更改为“基本” ”。现在数据库每天都在产生成本。
为什么会这样呢?以及如何防止Azure在不询问我的情况下这样做?
更新: 一些屏幕截图说明了Azure中sql数据库免费计划的可用性。
目前,我有3个带有免费计划的SQL数据库(多长时间?没人知道)和Basic中的2个数据库,它们以前是免费计划的数据库:
azure ×8
c# ×3
sql ×2
sql-server ×2
asp.net-mvc ×1
availability ×1
bulkinsert ×1
database ×1
deadlock ×1
nolock ×1
t-sql ×1
windows ×1