标签: sql-server-2012

IS NULL与<> 1 SQL位

我在SQL Server 2012数据库的表上有一个列.

我试图检索此位列为NULL或不正确的所有行.

此查询不会带回它应该的内容:(返回0行)

Select * 
from table 
where bit_column_value <> 1
Run Code Online (Sandbox Code Playgroud)

此查询返回正确的行:

Select * 
from table 
where bit_column_value IS NULL
Run Code Online (Sandbox Code Playgroud)

现在,我很乐意使用第二个查询,但我的问题是,在另一个表的类似查询中,上面的反向是正确的,第一种方式有效,但第二种方式不行!

有人可以协助解释上面的差异吗?我已经专门更新了相关的位列为NULL,这不会改变结果.(想想也许"空"和Null价值之间存在差异.

提前感谢您的任何解释.

sql sql-server null sql-server-2012

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

旧的row_number()和SQL Server中基于OFFSET + FETCH的新分页之间有什么区别?

我在SQL Server 2012提供的旧row_number(SQL Server 2008)和更新的OFFSET + FETCH(SQL Server 2012)分页机制的上下文中几乎没有问题.

  1. row_number()有什么限制?
  2. OFFSET + FETCH是row_number()的改进替代品吗?
  3. 是否有任何用例只能使用一个而不是另一个?
  4. 这两者之间是否有任何性能差异?如果是,建议使用哪一个?

谢谢.

sql-server sql-server-2005 sql-server-2008 sql-server-2012

19
推荐指数
1
解决办法
5568
查看次数

我是否需要在外键上指定ON DELETE NO ACTION?

我有与SQL Server 2012一起使用的以下DDL:

CREATE TABLE Subject (
   [SubjectId] INT IDENTITY (1, 1) NOT NULL,
   [Name] NVARCHAR (50) Not NULL,
   CONSTRAINT [PK_Subject] PRIMARY KEY CLUSTERED ([SubjectId] ASC)
)           

CREATE TABLE Topic (
   [TopicId] INT IDENTITY (1, 1) NOT NULL,
   [Name] NVARCHAR (50) NOT NULL,
   [SubjectId] INT NOT NULL,
   CONSTRAINT [PK_Topic] PRIMARY KEY CLUSTERED ([TopicId] ASC)
)
ALTER TABLE [Topic] WITH CHECK ADD  CONSTRAINT [FK_TopicSubject] 
   FOREIGN KEY([SubjectId]) REFERENCES [Subject] ([SubjectId]) 
   ON DELETE NO ACTION
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果孩子中存在对该父项的引用,SQL Server会阻止我删除父项吗?例如,如果存在SubjectId为3的子级,我希望删除SubjectID = 3中的SubjectID = 3.

为此,我不清楚,似乎无法找到答案.我是否需要添加"DELETE NO …

sql sql-server sql-server-2012

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

SQL Server dbo.sysdiagrams是用户表或系统表

在简单数据库中使用数据库图时,SQL Server在Table\Systam Tables节点中创建一个dbo.sysdiagrams表(在Microsoft management studio\object explorer中).但sysdiagrams表在SQL Server中标记为用户表.您可以通过以下查询获取用户表.

SELECT * 
FROM sys.tables t
WHERE OBJECTPROPERTY(t.object_id,'IsUserTable') = 1
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不知道sysdiagram表是系统表还是用户表.

存在microsoft_database_tools_support的值1在sysdiagram的扩展属性中,它确定自动创建的表.

在此输入图像描述

sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

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

如何在MS SQL Management Studio 2012中的调试会话期间查看表变量中的数据?

我想使用SSMS 2012调试复杂的T-SQL脚本.

我可以在调试模式下运行脚本并放置断点,以及逐步执行我的脚本,但是我看不到存储在表变量中的值.

Locals窗口中我看到所有这些变量,但它们的值显示为(table):

当地人的窗口

无法通过上下文菜单或单击变量来查看变量的内容.

我试图使用Immediate Window对表变量运行查询,但这似乎也不起作用.

即时窗口

知道如何从调试会话中的表变量中获取值吗?

debugging ssms table-variable sql-server-2012

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

Code First添加迁移期间的错误

我们的添加迁移通常会失败但不一致.迁移总是进入脚手架步骤,然后大约5次中有4次我们会收到如下内容:

 System.Runtime.Remoting.RemotingException: Object '/2355037d_df43_460b_8737_725c0c1c80be/hvdculybngjc_rcnskixmk7+_2.rem' has been disconnected or does not exist at the server.at EnvDTE.Project.get_Properties()
 at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T]  (Project project, String propertyName)
 at System.Data.Entity.Migrations.Extensions.ProjectExtensions.AddFile(Project project, String path, String contents)
 at System.Data.Entity.Migrations.Utilities.MigrationWriter.Write(ScaffoldedMigration scaffoldedMigration, Boolean rescaffolding, Boolean force, String name)
 at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass3.<.ctor>b__1()
 at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Object '/2355037d_df43_460b_8737_725c0c1c80be/hvdculybngjc_rcnskixmk7+_2.rem' has been  disconnected or does not exist at the server.
Run Code Online (Sandbox Code Playgroud)

有时迁移类无论如何都会生成,但更常见的情况是它不会生成.对这个错误的搜索已经表明某些东西正在被垃圾收集,这不应该是,但这并没有真正帮助我们解决这个问题.

我们的数据迁移项目在.NET 4.5中,EF 5在Windows 8,Visual Studio 2012和SQL Server 2012中运行.

entity-framework sql-server-2012

18
推荐指数
1
解决办法
2089
查看次数

SQL Server登录前握手确认错误

我们有一个生产网站,混合了经典的ASP,内联.Net和编译的.Net,它与一个SQL Server实例对话,其中两个虚拟机都在同一个物理盒上,而且一切都很好.为了使用新功能进行一些测试,我创建了站点的QA版本,并将其设置为连接到托管在另一台物理服务器上的VM上的数据库.它们是不同的网络(DMZ /内部),但都在千兆位的同一机架中,因此连接速度不应成为问题.

我们遇到的问题是QA版本会工作一段时间然后突然死亡,直到我重新启动应用程序池和站点.这不是一个负载问题,因为它只是我和另外两个人测试这个过程而且我已经确认QA数据库所在的服务器没有资源问题(16GB RAM,3.2GB使用和处理器利用率悬停在2%范围).所有页面变体都会出现特定错误(如下所示) - 经典ASP,内联.Net和已编译的.Net页面.根据我所做的所有研究,我不断指出它是防火墙问题,但我们甚至打开了两台服务器之间的所有端口,但它仍然会发生.最奇怪的部分是当我们在我们的ASA(5515-X)上启用跟踪时,它几乎看不到任何流量,有时网站会立即恢复该错误,而其他时间需要30秒以上.有问题的页面没有进行任何强烈的查找(一个页面已经消失,总共抓取了大约60条记录).这是完整的错误/堆栈跟踪:

  [Win32Exception (0x80004005): The wait operation timed out]

  [SqlException (0x80131904): Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=21008; handshake=12; ]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6749670
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +815
   System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject …
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net asp-classic sql-server-2012 iis-8

18
推荐指数
3
解决办法
10万
查看次数

如何计算时间间隔?

我有一个问题,我解决了,但我写了一个很长的程序,我不能确定它涵盖了所有可能的情况.

问题:

如果我有一个主间隔时间(From A to B)和次要间隔时间(很多或没有)

(`From X to Y AND From X` to Y` AND X`` to  Y`` AND ....`) 
Run Code Online (Sandbox Code Playgroud)

我想SUM的我的主要间隔时间(AB)所有部分在二次间隔分钟在高效和条件的最少数目(SQL服务器程序和C#方法)?

例如:如果我的主要间隔来自02:00 to 10:30 并说一个次要间隔来自04:00 to 08:00

现在我想要这个结果: ((04:00 - 02:00) + (10:30 -08:00))* 60

图表示例:

在第一种情况下,结果将是:

((X-A) + (B-Y)) * 60
Run Code Online (Sandbox Code Playgroud)

当我有很多次要时期时会更复杂.

注意:

可以是二次的间隔仅发生之间的重叠时,我要比较的主要时期[A,B],将UNION至多两个平行组次级间隔的.第一组必须只包含一个次级间隔和所述第二set包含(很多或没有)次要间隔.例如,在图表中,比较[A,B](2,5第一组)第一组(2)由一个辅助区间(5)组成,第二组由三个辅助区间组成.这是最糟糕的情况,我需要处理.

例如 :

如果我的主要间隔是,[15:00,19:40] 并且我有两组次要间隔.根据我的规则,这些集合中的至少一个应该包括一个次要间隔.说第一组是[11:00 ,16:00] ,第二组是说两个次要区间 …

c# linq sql-server intervals sql-server-2012

18
推荐指数
1
解决办法
1419
查看次数

在MySQL中获取未提交的数据

SQL Server我们可以在下面写SQL Queries让数据库取消提交的数据.这意味着仍在交易和交易中的数据不完整.

SQL Server查询

Select * from TableName With(NoLock);
Run Code Online (Sandbox Code Playgroud)

即使表被锁定,MySQL数据库中是否有任何等价来获取数据?我在PHP CodeIgnitor中尝试这个

php mysql codeigniter sql-server-2012 codeigniter-3

18
推荐指数
3
解决办法
7383
查看次数

在SQL中替换字符串中第一次出现的子字符串

我必须从@temp表中获取数据,其中包含类似"或ccc或bbb或aaa"的内容.我想将第一个匹配项替换为空格以获得类似"ccc或bbb或aaa"的内容.我正在尝试和替换,但他们似乎没有得到我想要的结果

我尝试过的:

DECLARE @stringhere as varchar(500)

DECLARE @stringtofind as varchar(500)

set @stringhere='OR contains or cccc or  '

set @stringtofind='or'
select STUFF('OR contains or cccc or  ',PATINDEX('or', 'OR contains or cccc or  '),0 ,' ')
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

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