亲自尝试一下,也许它与我的环境有某种关系:
查询:
SELECT CAST('20140904 23:59:59.999' AS datetime)
Run Code Online (Sandbox Code Playgroud)
结果:
2014-09-05 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
请解释一下这种现象.
更新:Alex提到日期时间值四舍五入为.000,.003或.007秒的增量.问题是为什么?
我正在使用SQL Server 2014的全文搜索功能来查找以给定前缀开头的数据库中的文档.但是,有些查询不会产生任何结果,而应该会产生任何结果.
请看以下示例:
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedenseins*"')
(24 row(s) affected)
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedensein*"')
(0 row(s) affected)
SELECT * FROM [Profile].[DocumentView] WHERE CONTAINS(Content, '"Friedensei*"')
(29 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
我理解第一个和第三个结果,但不是第二个结果.关闭全文索引的停止列表.分词器的语言设置为德语.
编辑:
使用的建议FREETEXT不是这个特定情况的解决方案,因为我需要CONTAINS的邻近搜索功能.
我目前正在从SQL Server 2008R2升级到2014(两者都是Enterprise).有大量的SSIS作业正在生产中,需要迁移.我正试图了解如何管理未来的SSIS工作.
在2008R2中,我总是使用BIDS将软件包部署到MSDB.然后通过SQL Server控制所有权限.
在2014年,我看到您仍然可以保存到文件系统或MSDB,但现在存在您作为Integration Services目录创建的SSISDB.通过添加简单的变量访问甚至环境变量,这种方法显然可以提供更大的灵活性.
在2014年将SSIS包部署到SSISDB现在是部署和管理SSIS项目的最佳实践方式,而不是部署到MSDB?我还能管理权限吗?当我备份SSISDB时,是否备份了所有部署的项目(就像以前一样使用MSDB)?最后,当我通过SQL代理安排这些软件包时,它们的行为是否仍然相同,其中SQL代理服务帐户和作业所有者的权限在运行时确定SSIS包的权限?
非常感谢任何可以提供帮助的人.我整天都在微软的网站上,虽然文档非常有用,但实际上并没有回答这些问题的具体问题.
我正在使用SQL Server 2014并遇到问题.
在" 任务管理器 "的" 服务"选项卡上,我找到了SQLAgent $ VILLBE_SQLSERVER(VILLBE是我的计算机名),右键单击"开始".
它开始并在1秒钟后停止.
然后,我打开SERVICES.MSC,并启动了SQL Server代理(VILLBE_SQLSERVER) .它正在发挥作用.
30秒后,它会自动停止.当我再次点击Start时,它说:
The SQL Server Agent (VILLBE_SQLSERVER) service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs.
Run Code Online (Sandbox Code Playgroud)
最后,我右键单击SQL Server Agent,选择Properties,将Start up type设置为Automatic并重启我的PC.
重新启动完成后,SQL Server代理仍然停止
其他一些服务:
SQL Server Browser - Running - Automatic (start up) …Run Code Online (Sandbox Code Playgroud) 我创建了两个表:
表tblStaff的列id(主键,自动递增)name,age,address
表tblRoleOfStaff的列id(主键,自动递增), StaffId(外键tblStaff)RoleId
我有形式来创建具有现有角色的新员工.要插入的数据样本:
(name, age, address, roleId) = ('my name',20,'San Jose', 1)
Run Code Online (Sandbox Code Playgroud)
我想写在SQL Server 2014存储过程中插入新员工tblStaff,并插入新记录tbleRoleOfStaff与staffId我刚插入.
我该怎么办?
如果我的问题与其他问题重复,我很抱歉.我对SQL更新.谢谢你的帮助.
可能的解释在评论中
在SQL Server 2014企业版(64位)中 - 我试图从视图中读取.标准查询只包含一个ORDER BY和这样的OFFSET-FETCH子句.
方法1
SELECT
*
FROM Metadata
ORDER BY
AgeInHours ASC,
RankingPoint DESC,
PublishDate DESC
OFFSET 150000 ROWS
FETCH NEXT 40 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)
但是,这个相当简单的查询比以下返回相同结果的查询执行快9倍(在跳过大量行(如150k)时显而易见).
在这种情况下,我首先读取主键,然后将其用作WHERE...IN函数的参数
方法2
SELECT
*
FROM Metadata
WHERE NewsId IN (
SELECT
NewsId
FROM Metadata
ORDER BY
AgeInHours ASC,
RankingPoint DESC,
PublishDate DESC
OFFSET 150000 ROWS
FETCH NEXT 40 ROWS ONLY
)
ORDER BY
AgeInHours ASC,
RankingPoint DESC,
PublishDate DESC
Run Code Online (Sandbox Code Playgroud)
这两个基准标记显示了这种差异
(40 row(s) …Run Code Online (Sandbox Code Playgroud) sql sql-server database-performance query-performance sql-server-2014
我试图首先使用Entity Framework实现一些基类/子类.在一些在线教程之后,我决定尝试TPT继承.
在数据库中,我有一个基类表'Location'和两个子类表:'StreetAddress'和'RuralRouteAddress'.我已经在子类表和主键上的基类表之间定义了外键约束.'Location的主键是一个自动增量列,两个子类表的主键不是自动增量.
在实体框架中,我将两个子类的"基本类型"定义为"位置".然后,我从模型中删除了关联(及其相应的导航属性).我还从子类中删除了ID列映射,因为ID现在继承自"Location"基类.
这似乎有效.我没有尝试更新/插入,但查询返回具有适当继承的数据.
我的问题是,每当我'从数据库更新模型'时,他的继承关联线都会停留,但是基类和子类之间的FK关联会被带回来...... 然后我必须删除它们,并重新对齐我的图表上的关联线(我对模型图的布局有点挑剔).
这并不是那么糟糕,但我想使用TPT继承的项目有很多继承.每次更新模型时,必须删除大量关联并重新组织我的整个图表并不是很吸引人.
我实现继承时是否做错了什么?有没有办法忽略/排除在更新模型时创建某些关联?
我正在使用SQL Server 2014.当我想将上一行日期时间与第二行中的当前行进行比较时,我遇到了问题.错误说明:
日期函数导致溢出.分隔两个日期/时间实例的日期部分数量太大.尝试使用具有不太精确的日期部分的datediff.
SQL Server 2016解决了这个问题,DATEDIFF_BIG但SQL Server 2014不支持该功能.目前还没有计划使用SQL Server 2016更改数据库服务器.
任何替代解决方案将不胜感激.
SELECT ROW_NUMBER() OVER (Order by A.MDetailID) as Row
, DATEDIFF(SECOND, A.CreatedDate, LEAD(A.CreatedDate,1,0) OVER (ORDER BY A.CreatedDate))
FROM dbo.tbl_VehicleLiveMovementDetail A
Run Code Online (Sandbox Code Playgroud) 从SQL Server 2014开始,"导入和导出"向导中的默认数据源为.Net Framework Data Provider for Odbc.知道怎么改变这个吗?
我正在运行一系列生成数据库的脚本.它们在SQL Server 2012(11.0.5058.0)上运行完成.在SQL Server 2014(12.0.4213.0)上,脚本错误:
消息0,级别11,状态0,行0
当前命令发生严重错误.结果(如果有的话)应该被丢弃.消息0,级别20,状态0,行0
当前命令发生严重错误.结果(如果有的话)应该被丢弃.
看来,IsNumeric在CTE查询中使用语句的结果会破坏查询构建,因为不需要行来导致错误.我遇到的案例的简化版本是:
CREATE TABLE #Temp1 ( CTECol VARCHAR );
CREATE TABLE #Temp2 ( NumCol Int null);
;
WITH cte AS
(
SELECT
CASE WHEN ISNUMERIC(t.CTECol) = 1
THEN 1
ELSE null
END as IsNCol1
FROM
#Temp1 t
)
SELECT *
FROM #Temp2
JOIN cte ON #Temp2.NumCol = cte.IsNCol1
Run Code Online (Sandbox Code Playgroud)
我能找到的最简单的案例是:
CREATE TABLE #Temp3 ( CTECol Int );
CREATE TABLE #Temp4 ( NumCol Int );
;
WITH cte AS
(
SELECT ISNUMERIC(t.CTECol) …Run Code Online (Sandbox Code Playgroud) sql-server isnumeric common-table-expression sql-server-2014
sql-server-2014 ×10
sql-server ×7
sql ×3
bids ×1
casting ×1
database ×1
datetime ×1
inheritance ×1
isnumeric ×1
ssis ×1