标签: sql-server-2012

列存储索引中列的顺序是否在SQL Server 2012中很重要

我有一个约2亿行和约15列的表.我打算在我的表上创建列存储索引.根据我在列存储索引中使用的列的顺序,性能是否会有任何变化?如果是,它背后的逻辑是什么?

sql sql-server sql-server-2012 columnstore

11
推荐指数
2
解决办法
1014
查看次数

在Visual Studio 2012中连接到SQL Server 2012时无法访问Visual Query Designer

当我右键单击服务器资源管理器中的"表"节点并选择"新查询",而不是看到可视化设计器时,我现在看到一个文本设计器,没有明显的方法可以访问可视化设计器(参见屏幕截图).

Visual Studio屏幕截图

请注意Query Designer工具是如何全局显示的.有没有办法回到视觉设计师?

如果它有所不同,我正在连接的数据库是SQL Server 2012 Express.

编辑

我做了一些更多的研究,看起来我应该能够通过创建一个新的查询来查看设计器(http://msdn.microsoft.com/en-us/library/ms172011.aspx).我找不到任何可能影响此行为的选项.这也意味着我不能只在我的测试数据库中编辑一行,这让我发疯!

编辑2

好的,我得到的行为是基于我连接的数据库.当我添加到SQL Server 2008数据库的连接时,右键单击并选择"新查询"我得到了可视化设计器.当我连接到SQL Server 2012数据库并执行完全相同的操作时,我得到了文本SQL编辑器,无法访问可视化设计器!

sql-server-2012 visual-studio-2012

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

TSQL OVER子句:COUNT(*)OVER(ORDER BY a)

这是我的代码:

USE [tempdb];
GO

IF OBJECT_ID(N'dbo.t') IS NOT NULL
BEGIN
    DROP TABLE dbo.t
END
GO

CREATE TABLE dbo.t
(
    a NVARCHAR(8),
    b NVARCHAR(8)
);
GO

INSERT t VALUES ('a', 'b');
INSERT t VALUES ('a', 'b');
INSERT t VALUES ('a', 'b');
INSERT t VALUES ('c', 'd');
INSERT t VALUES ('c', 'd');
INSERT t VALUES ('c', 'd');
INSERT t VALUES ('c', 'd');
INSERT t VALUES ('e', NULL);
INSERT t VALUES (NULL, NULL);
INSERT t VALUES (NULL, NULL);
INSERT t VALUES (NULL, NULL); …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server window-functions sql-server-2012

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

如何在SSMS 2012中创建UNIQUE约束

我是SQL Server的新手,我使用的是2012版.

我有一个具有以下结构的表:

Attendance
--------------
TagID     (FK)
SessionID (FK)       
ScanningTime
Run Code Online (Sandbox Code Playgroud)

我需要基于两列(TagID和SessionID)创建一个唯一约束

我不知道该怎么做.我创建了一个查询并尝试了这段代码:

ALTER TABLE Attendance ADD CONSTRAINT UNIQUE NONCLUSTERED
(
    TagID,
    SessionID
)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试执行它时,我收到此错误:

消息156,级别15,状态1,行2
关键字"UNIQUE"附近的语法不正确.

使用SSMS更改表格的正确方法是什么?我应该每次创建一个查询吗?

sql database sql-server ssms sql-server-2012

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

如何编写SQL Server数据库图表的脚本?

如何将SQL Server数据库图表导出为开发人员友好的SQL脚本?

对开发人员友好,我的意思是以类似于人类编写方式的方式编写,而不是现有解决方案UPDATE使用的混乱多种方式.

(请注意,此站点上的类似问题似乎只涵盖特定版本的SQL Server或图表迁移.)

t-sql sql-server-2008 sql-server-2008-r2 database-diagram sql-server-2012

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

创建索引视图,该视图引用非索引视图和来自多个DB的对象

我在create view语句中使用以下格式的以下对象.

dbo.objects1 A
INNER JOIN db2.dbo.object2 
INNER JOIN db2.dbo.object3 
INNER JOIN db2.dbo.object4
INNER JOIN db2.dbo.object5
Run Code Online (Sandbox Code Playgroud)

这objects1是一个Database1有索引的表.该objects2 through objects5 是另一种database,所有这4个对象视图与No indexes.

现在我正在尝试使用以上所有五个对象创建一个索引视图,但SQL服务器不允许我.

第一个错误是:

Names must be in two-part format and an object cannot reference itself.

第二个错误是:

Cannot schema bind view 'dbo.vw_Order' because name 'db2.dbo.object2' is invalid for schema binding.

现在我搜索了这些错误,我开始遵循以下假设:

  1. 视图不能包含连接查询中多个数据库中的对象.
  2. 为了在视图上创建索引,视图中的所有对象都应该具有索引或应该是模式绑定(如函数).

当我像查询一样运行视图时,执行计划建议我在db2中的对象的列上创建索引.如果我的假设是正确的,请告诉我.如果没有,请告诉我如何在这种情况下创建视图.

sql t-sql sql-server-2008 sql-server-2012

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

如何从sql server 2012中的表中删除自动增量

我在SQL Server 2012中创建了一个表,主键为自动增量.但是如何使用SQL查询从表中删除该自动增量属性?

sql sql-server sql-server-2012

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

为什么工作目录在执行Invoke-sqlcmd时会发生变化?

我正在尝试搜索数据库中是否有特定的机器名称,如果是,我们将替换为新的机器名称.

我们正在使用PowerShell

 Add-pssnapin sqlserverprovidersnapin100 -ErrorAction SilentlyContinue
    Add-pssnapin sqlservercmdletsnapin100 -ErrorAction SilentlyContinue

    $SelectQuery = "SELECT [$columnName] FROM [$DatabaseName].[dbo].[$TableName] Where [$columnName] is not null;"

    try {
          $Qresult= Invoke-sqlcmd -query $SelectQuery -Database $DatabaseName -ServerInstance $srvInstance -Verbose
          $Qresult = $Qresult| % { $_.$columnName+"`n" 

           #check whether the Machine Name is found if the column value is processed in URL format
            $IsOldFoundFromURL=TestOldMachineFromURL $Qresult $OldMachineName

            #check whether the Machine Name is found if the column value is processed in Connection string format
            $IsOldFoundFromConn=TestOldMachineFromconnstring $Qresult $OldMachineName

            If ( $IsOldFoundFromURL …
Run Code Online (Sandbox Code Playgroud)

powershell sql-server-2012

11
推荐指数
1
解决办法
1543
查看次数

SQL Server:条件聚合;

我有一个看起来像这样的表:

  Year       Value
  -----------------
  2013      -0.0016
  2014      -0.0001
  2015       0.0025
  2016      -0.0003
  2017       0.0023
  2018       0.0002
Run Code Online (Sandbox Code Playgroud)

我需要执行一个条件聚合,从而产生一个新列.条件如下:

如果值为负,则聚合开始并且在值为正之前不会停止.然后没有什么,直到值再次为负...结果将如下所示:

  Year       Value        AggCol
  2013      -0.0016      -0.0016
  2014      -0.0001      -0.0017
  2015       0.0025       0.0008
  2016      -0.0003      -0.0003
  2017       0.0023       0.002
  2018       0.0002       0.0002
Run Code Online (Sandbox Code Playgroud)

这个udf和我一样接近:

create function dbo.fn(@cYear numeric, @rate float)
returns float
as 
begin
    declare @pYear numeric
    declare @return float

    set @pYear = @cYear - 1

    set @return = (select 
                        case 
                            when Value < 0 and @rate > 0  then null 
                            when Value < …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server sql-server-2012

11
推荐指数
1
解决办法
169
查看次数

SQL Server:将架构更改复制到另一个数据库

我正在研究ASP.NET Web API中的一个需求,它需要两个相同的数据库.

我在同一台服务器上创建了两个相同的数据库.假设一个用于开发,另一个用于测试.

我想立即将所有模式(如存储过程,视图和表)从另一个数据库复制到另一个数据库.

我并不担心数据复制,我只需要确保两个数据库具有完全相同的模式定义.

我已经尝试从一个数据库生成一个模式,并定期更新另一个.但现在,我想立即将更改复制到其他数据库.因此,当我更新开发数据库中的存储过程或视图时,也应立即对测试数据库应用相同的更改.

我要求你告诉我是否有可能或者是否有另一种方法来实现这一目标

database sql-server asp.net database-replication sql-server-2012

11
推荐指数
2
解决办法
578
查看次数