标签: sql-server-2012

EF:如何在交易中两次调用SaveChanges?

使用Entity Framework(在我的例子中是代码),我有一个操作,需要我调用SaveChanges来更新DB中的一个对象,然后再次SaveChanges来更新另一个对象.(我需要第一个SaveChanges来解决EF无法确定首先更新哪个对象的问题).

我试过做:

using (var transaction = new TransactionScope())
{
    // Do something

    db.SaveChanges();

    // Do something else

    db.SaveChanges();

    tramsaction.Complete();
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我在第二次SaveChanges调用时遇到异常,说"底层提供程序在打开时失败".内部异常表示我的机器上未启用MSDTC.

现在,我在其他地方看到了描述如何启用MSDTC的帖子,但似乎我还需要启用网络访问等.这听起来像是完全矫枉过正,因为没有涉及其他数据库,更不用说其他服务器了.我不想做一些会使我的整个应用程序不那么安全(或更慢)的东西.

当然必须有一个更轻量级的方法(理想情况下没有MSDTC)?!

msdtc entity-framework transactionscope sql-server-2012 entity-framework-5

15
推荐指数
3
解决办法
1万
查看次数

SQL Server 2012 SQLP模块 - 自动更改当前位置?

我有一个包含现有powershell脚本的大型库,主要用于在SQL Server和文件系统之间运行一些复杂的逻辑和交互.

SQL交互通常通过cmdlet执行Invoke-SQLCmd.

最近我所有服务器上的SSMS版本都升级到了2012.这意味着我必须对我的代码进行一些更改才能删除对该引用的引用sqlserverprovidersnapin100,sqlservercmdletsnapin100因为这些引用在2012年已被弃用,有利于导入SQLPs模块.

这工作正常,但似乎SQLPs模块在某些时候改变当前位置PS SQLSERVER>而不是<local folder>,这使我的许多其他命令失败.例如,如果我Test-Path在网络驱动器上运行,它可以从该<local folder>位置正常工作,但将从该位置失败SQLSERVER.

这是一个已知的问题?是否有解决方法或设置我可以为此更改?

我担心的主要脚本超过1000行,并且在我们做出这个改变之前已经运行了两年没有问题,所以如果可以的话,我想避免对它进行逐行测试.

powershell sql-server-2012

15
推荐指数
2
解决办法
5403
查看次数

附加数据库时的权限错误:"无法访问指定的路径"

我正在运行SQL Server 2012企业版.我已经下载了AdventureWorks 2012 OLTP数据文件(包括.mdf.ldf).我将它们保存到我在解My Documents压缩文件的位置创建的AW文件夹中.我转到SQL Server Management Studio(SSMS),右键单击数据库,然后在上下文菜单中单击"附加".在对话框中,我单击查找.

用户界面不允许我导航到文件夹.我尝试键入文件的完整路径,然后我收到以下错误:

无法访问服务器上的指定路径或文件.验证您是否具有必要的安全权限以及路径或文件是否存在.

我关闭了SSMS并重新启动它,这次以管理员身份运行.同样糟糕的结果.

这不应该是这么难.将AdventureWorks2012数据库成功附加到SSMS的确切步骤是什么?

谢谢!

sql sql-server adventureworks sql-server-2012

15
推荐指数
4
解决办法
4万
查看次数

在sql server中从时区到时区的日期时间转换

我的数据库表中有一列UNIX时间戳,它来自科威特时区的系统.

我的数据库服务器的时区是Eastern Time US & Canada.现在我需要使用SQL查询将UNIX时间戳转换为科威特时区日期值.

谁能告诉我如何将这个UNIX时间戳转换为科威特时区的日期值?

timezone unix-timestamp sql-server-2012

15
推荐指数
1
解决办法
5万
查看次数

如何确定SQL Server 2012中是否存在序列?

我需要创建一个SQL脚本来确定SQL Server 2012数据库中是否存在序列.我熟悉确定存储过程是否存在而不是序列的过程.谢谢.

sql sql-server sql-server-2012

15
推荐指数
3
解决办法
4万
查看次数

分页时获取总行数

我有一个搜索屏幕,用户有5个要搜索的过滤器.
我根据这些过滤器值构建了一个动态查询,并一次构建了第10页结果.
这在SQL2012中正常使用OFFSETFETCH,但我使用两个查询来执行此操作.

我想显示10个结果显示查询找到的总行数(假设为1000).
目前我通过运行两次查询来执行此操作- 一次为总计数,然后再次为10行.
有没有更有效的方法来做到这一点?

sql sql-server paging fetch sql-server-2012

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

列出sql server 2012中的模式名称和所有者

我想在所有数据库中列出所有表名,列名,模式名和所有者,并编写下面的代码.我不知道从何处获取架构所有者详细信息以添加到我的查询中.请帮忙 .

select  c.name as colomn_name , t.name as table_name , s.name as schema_name 
 from sys.columns c 
   inner join  sys.tables t     on c.object_id=t.object_id
   INNER JOIN sys.schemas AS s  ON t.[schema_id] = s.[schema_id]
Run Code Online (Sandbox Code Playgroud)

sql-server schema sql-server-2012

15
推荐指数
2
解决办法
6万
查看次数

我需要对两列进行检查约束,至少有一列不能为空

我在SQL Server中有一个包含两个数字列的表.必须至少填充其中一个数字字段.如何编写检查约束来验证这一点?

sql sql-server-2012

15
推荐指数
2
解决办法
9150
查看次数

使用sql查找范围内的下一个可用整数,该整数在现有整数子集中不存在

问题陈述:

给定一系列x -> y无符号整数
,其中xy都在范围内 ,并且(或者在交替情况下为64) 找到最小可用值 不等于或 不在现有集合中 ,其中现有集合是任意子集0 -> 2n
n0 -> 32

xy

x -> y

我正在使用数据库中的IPv4和IPv6子网建模.每个子网由其起始地址和结束地址定义(我通过业务规则确保范围的完整性).由于IPv6太大而无法存储在bigint数据类型中,因此我们将IP地址存储为binary(4)binary(16).

相关联的数据被存储在subnet,dhcp_rangeip_address表:

  • 子网:子网范围由起始和结束IP地址定义并存储在subnet表中.子网范围始终为2 n(根据CIDR /网络掩码的定义).
  • IP:子网具有0..*存储在ip_address表中的IP地址.IP地址必须位于起始地址和结束地址之间,但不等于其关联子网定义的范围.
  • DHCP范围:子网具有0..*存储在dhcp_range表中的DHCP范围.与子网类似,每个DHCP范围定义开始和结束地址.DHCP范围受相关子网范围的限制.DHCP范围不会相互重叠.

我想要确定的是子网的下一个可用IP:

  • 不是已经分配(而不是在IP地址表)
  • 不在 DHCP范围内
  • 并且等于子网范围的开始或结束地址.

我正在寻找一个解决方案,找到最小可用地址或所有可用地址.

我最初的想法是生成由子网范围绑定的可能地址(数字)范围,然后根据使用的集删除地址:

declare @subnet_sk int = 42

;with …
Run Code Online (Sandbox Code Playgroud)

sql math network-programming range sql-server-2012

15
推荐指数
1
解决办法
1004
查看次数

如何计算SQL中数据的90th Percentile,SD,Mean

嗨,我有一个餐桌设施.每天持有一个分数(每天可以报告多个分数,两者都有效)

我需要按月计算得分的第90个百分点,标准差和平均值.

设施:

Id   Month Date  score
1    Jan     1    5
1    Jan     1    5
1    Jan     2    3
1    Jan     3    4
1    Jan     4    4
1    Jan     5    4
1    Feb     1    5
1    Feb     1    5
1    Feb     2    3
1    Feb     3    4
1    Feb     4    4
1    Feb     5    4
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

谢谢你的帮助.

sql sql-server sql-server-2012

15
推荐指数
1
解决办法
4万
查看次数