我设计了一个具有两个实体的实体数据模型,在这两个实体之间存在多对多关系.当我自动生成SQL代码以生成此模型的数据库时,它生成了一个表(两列)来跟踪这种多对多关联.但是,此表在两列上都有一个PRIMARY KEY NONCLUSTERED.
既然我希望这个可以在SQL Azure上工作,它不喜欢只有非聚簇索引的表,我想知道是否有一种很好的方法来告诉代码生成生成聚簇索引?谢谢!
我找到了许多使用的主题:
DBCC CHECKIDENT ('table', RESEED, 0)
Run Code Online (Sandbox Code Playgroud)
但Azure SQL不支持此功能.有人知道如何轻松地做到这一点吗?
非常感谢 !
在管理服务器时,在SQL Azure管理控制台中,您可以选择设置"允许的IP地址"以及"允许的服务".在"允许的服务"中,您可以允许WINDOWS AZURE SERVICES,但这究竟意味着什么?具体来说,这是否意味着在Azure上运行VM的任何其他人都可以连接到我的服务器(假设他们知道用户名和密码)?或者是否存在其他一些限制,例如只能在同一个Subscription中运行的azure服务可以连接,或者只有Linked Linked?
我正在使用linq to Entity来查询azure数据库.我已登录azure查看给出特定问题的查询.我想实际查看传入的参数,但所有azure给我的是下面.有没有办法在查询已经运行后查看参数(例如,更改代码以记录它们目前不是一个选项).
当我登录azure时,请转到管理门户 - SQL数据库| 查询性能| 选择特定查询.我可以看到以下内容:问题是我无法看到已经传递给参数的内容,例如@p_ linq _19.我只看到一个参数占位符.
SELECT TOP (150)
[Project1].[AlertIdentifier] AS [AlertIdentifier]
FROM ( SELECT
[Extent1].[AlertIdentifier] AS [AlertIdentifier],
[Extent1].[TimeReceived] AS [TimeReceived]
FROM [dbo].[SecurityAlert] AS [Extent1]
WHERE (2 <> [Extent1].[AlertStatusID]) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__0) OR ([Extent1].[DateScanned] >= @p__linq__1)) AND ((N'' = @p__linq__2) OR ([Extent1].[BettingShopIdentifier] LIKE @p__linq__3 ESCAPE N'~')) AND ((convert(datetime2, '0001-01-01 00:00:00.0000000', 121) = @p__linq__4) OR ([Extent1].[DateScanned] <= @p__linq__5)) AND ((cast(0 as float(53)) = @p__linq__6) OR ( CAST( [Extent1].[SlipStake] AS float) >= @p__linq__7)) AND …Run Code Online (Sandbox Code Playgroud) 我正进入(状态
SQL Server中此版本的SQL Server不支持语句"SELECT INTO"
对于存储过程中的以下查询
DECLARE @sql NVARCHAR(MAX)
,@sqlSelect NVARCHAR(MAX) = ''
,@sqlFrom NVARCHAR(MAX) = ''
,@sqlTempTable NVARCHAR(MAX) = '#itemSearch'
,@sqlInto NVARCHAR(MAX) = ''
,@params NVARCHAR(MAX)
SET @sqlSelect ='SELECT
,IT.ITEMNR
,IT.USERNR
,IT.ShopNR
,IT.ITEMID'
SET @sqlFrom =' FROM dbo.ITEM AS IT'
SET @sqlInto = ' INTO ' + @sqlTempTable + ' ';
IF (@cityId > 0)
BEGIN
SET @sqlFrom = @sqlFrom +
' INNER JOIN dbo.CITY AS CI2
ON CI2.CITYID = @cityId'
SET @sqlSelect = @sqlSelect +
'CI2.LATITUDE AS CITYLATITUDE …Run Code Online (Sandbox Code Playgroud) 我使用以下命令执行sqlpackage以导出本地数据库的bacpac.
"C:\ Program Files(x86)\ Microsoft SQL Server\110\DAC\bin\sqlpackage.exe"/ action:Export /tf:".\dbname_Baseline.bacpac"/ SourceConnectionString:"XXXXXXXXXXXX"
它无法说"元素主键:[dbo].[PK_Name]具有不受支持的属性FillFactor设置,并且在用作数据包的一部分时不受支持."
我理解不支持fillfactor但有什么可以忽略不支持的属性吗?
谢谢
标记
我正在运行基于Azure的站点,由于历史原因,在两台服务器上使用两个数据库.我已经从静态数据源复制了数据,因此它们都驻留在同一台服务器上.我很确定我已从实时代码中删除了对旧服务器的所有引用,实际上Azure仪表板在过去一个月中没有显示任何连接.但在我删除服务器之前要100%确定我想阻止它并测试实时网站.如果出现任何问题,我想再次启动它.在SQL Server Management Studio中,这通常很简单,我可以右键单击SQL Server Management Studio对象资源管理器中的服务器并选择"停止",然后选择"开始".但是,"停止"和"启动"未在SQL Azure服务器的选项中列出,也无法在Azure门户的管理页面中看到任何内容.
所以我的问题很简单 - 如何停止和启动SQL Azure数据库?
为了处理SQL超时我正在尝试使用SqlAzureExecutionStrategy(https://msdn.microsoft.com/en-us/data/dn456835.aspx)
我遇到的问题是,它可以防止"用户发起的交易",这似乎是实施"与(NOLOCK)",在EF(推荐方式http://www.hanselman.com/blog/GettingLINQToSQLAndLINQToEntitiesToUseNOLOCK.aspx,NOLOCK与Linq to SQL).
示例代码
public AspnetUser GetAspnetUserByUserName(string userName)
{
using (var tx = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions() { IsolationLevel = IsolationLevel.ReadUncommitted }))
{
return context.AspnetUsers.Where(x => x.UserName == userName).FirstOrDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
抛出错误
配置的执行策略"SqlAzureExecutionStrategy"不支持用户启动的事务.有关其他信息,请参阅http://go.microsoft.com/fwlink/?LinkId=309381.
我已经看到了在每次调用的基础上关闭SqlAzureExecutionStrategy的答案,但是如果我的所有读取都忽略了策略,那将无法使用它.可以同时拥有"NoLock"和SqlAzureExecutionStrategy
linq entity-framework azure entity-framework-6 azure-sql-database
我已经使用MongoDB为Heroku部署了一些站点,但这是我第一次使用SQL创建一个站点并尝试部署到Azure,所以我可能会遗漏一些明显的东西.
我一直在使用Node.js,一个SQL Server数据库和Sequelize作为ORM在我的开发机器上开发一个网站.一切正常,但当我尝试使用连接字符串部署到Azure时,我无法连接SQL Azure数据库.我可以使用SQL Server Management Studio连接Azure上的空数据库,所以我确定我的连接信息是正确的.
当我尝试部署到Azure时,我尝试使用Azure提供的连接字符串:
var Sql = require('sequelize');
var sql = new Sql('Driver={SQL Server Native Client 11.0};Server=tcp:server.database.windows.net,1433;Database=databasename;Uid=UserName@server;Pwd={password};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;');Run Code Online (Sandbox Code Playgroud)
当我尝试连接此字符串时,我得到的错误是:
C:\Users\username\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110
options.dialect = urlParts.protocol.replace(/:$/, '');
^
TypeError: Cannot read property 'replace' of null
at new Sequelize (C:\Users\v-mibowe\Documents\GitHub\event-site\node_modules\sequelize\lib\sequelize.js:110:40)
at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\routes\db-routes.js:68:11)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (C:\Users\v-mibowe\Documents\GitHub\event-site\server.js:16:1)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at …Run Code Online (Sandbox Code Playgroud)azure ×5
sql ×4
sql-server ×4
bacpac ×1
export ×1
fillfactor ×1
linq ×1
node.js ×1
sequelize.js ×1