标签: sql-server-2014

SQL Server Management Studio无法连接

我已经安装了SQL Server Management Studio 2014.在"连接到服务器"窗口中,我选择服务器类型为"数据库引擎",服务器名称为"(本地)"但是当我尝试连接时,显示n错误 -

标题:连接到服务器

无法连接..

附加信息:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)(Microsoft SQL Server,错误:2)

请帮忙做什么......

c# sql sql-server sql-server-2014

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

分布式数据库事务与跨数据库事务

SQL Server中分布式数据库事务和跨数据库事务之间的区别是什么.

我知道Distribute数据库事务是多个数据库之间的事务,可以通过以下查询使用:

BEGIN DISTRIBUTED TRANSACTION
...
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)

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

7
推荐指数
1
解决办法
2142
查看次数

如何链接不同AD域中的服务器?

我正在尝试链接两个运行在两个独立(!)Active Directory域中的SQL Server(2008R2和2014).

问题是我只能使用远程域中的Windows帐户登录远程服务器.所以挑战是将凭据传递给远程服务器,但在这里我被卡住了.

  • 本地域(本地网络基础结构)dom8:, Server : dom8\sql2008, SQL(!)登录:localuser
  • 远程域(Microsoft Azure):, dom14服务器:dom14\sql20148,Windows(!)登录:dom14\import

服务器dom8\sql2008想要连接dom14\sql2014以便提取一些数据.

这是我在本地服务器上尝试过的:(登录dom8\sql2008sa):

-- Create a credential for the remote Windows login:
create credential cred_import WITH IDENTITY= 'dom14\user14', 
       SECRET = 'password' ;

-- Alter the local SQL login and add the created credential:
alter login local_user with credential = cred_import ;

-- Create the Linked Server entry:
exec sp_addlinkedserver 
    @server='dom14\sql2014', 
    @srvproduct='SQL …
Run Code Online (Sandbox Code Playgroud)

credentials active-directory windows-authentication sql-server-2008-r2 sql-server-2014

7
推荐指数
1
解决办法
1207
查看次数

OFFSET命令附近的语法不正确

为什么这不起作用,并给我一个"偏移命令附近的语法不正确"错误

SELECT o.orderdate, o.orderid, o.empid, o.custid FROM Sales.Orders o
ORDER BY o.orderdate, o.orderid
OFFSET 50 ROWS
FETCH NEXT 25 ROWS ONLY;
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server Express 2014

sql t-sql sql-server sql-server-2014

7
推荐指数
2
解决办法
9211
查看次数

为什么SQL Server会改变操作顺序和装箱方式呢?

四个简单的SELECT语句:

SELECT 33883.50 * -1;
SELECT 33883.50 / -1.05;
SELECT 33883.50 * -1 / 1.05;
SELECT (33883.50 * -1) / 1.05;
Run Code Online (Sandbox Code Playgroud)

但结果并不如我所料:

-33883.50
-32270.000000
-32269.96773000
-32270.000000
Run Code Online (Sandbox Code Playgroud)

第三个结果似乎是值得怀疑的结果.我可以看到发生了什么,首先SQL Server评估这个:

SELECT -1 / 1.05;
Run Code Online (Sandbox Code Playgroud)

得到答案:

-0.952380
Run Code Online (Sandbox Code Playgroud)

然后它接受该答案并使用它来执行此计算:

SELECT 33883.50 * -0.952380;
Run Code Online (Sandbox Code Playgroud)

得到(错误的)答案:

-32269.96773000
Run Code Online (Sandbox Code Playgroud)

但为什么这样做呢?

sql sql-server sql-server-2014

6
推荐指数
1
解决办法
338
查看次数

如何比较 datetime2 和 datetime

我需要将一个数据库的属性 datetime2 与其他数据库的属性 datetime 进行比较,因为我找不到将 datetime 转换为 datetime2 的方法。

我测试一下这句话:

select CAST(FechaAlta AS datetime) from tutors
Run Code Online (Sandbox Code Playgroud)

但返回此错误消息:

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。

sql-server datetime datetime2 sql-server-2014

6
推荐指数
1
解决办法
6525
查看次数

构建项目时,VS 2015 Native编译器在.rdlc文件上返回值-1073741511

我收到了这个错误:

rsUnexpectedCompilerError:编译表达式时发生意外错误.本机编译器返回值:' - 10373741511'

,在现有项目的盒子rdlc上的新盒子上编译时Visual Studio 2015Windows 8.1

这发生在具有表达式的项目中的每个现有r d lc文件上.

我查了一下.我安装了最新的sql服务器数据工具(ssdt).

我还创建了一个全新的控制台应用程序,其中包含没有表达式的空报表,它编译得很好.当我向该空报表添加表达式时,如下例所示,它拒绝编译.

有谁知道我怎么能用表达式Visual Studio编译rdlcs?计算机在重新成像之前用于执行此操作windows 8.1.

这是一个无法编译的文件示例:

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  <Body>
    <ReportItems>
      <Textbox Name="Textbox1">
        <CanGrow>true</CanGrow>
        <KeepTogether>true</KeepTogether>
        <Paragraphs>
          <Paragraph>
            <TextRuns>
              <TextRun>
                <Value>="goo"</Value>
                <Style />
              </TextRun>
            </TextRuns>
            <Style />
          </Paragraph>
        </Paragraphs>
        <rd:DefaultName>Textbox1</rd:DefaultName>
        <Top>0.62375in</Top>
        <Left>2.88417in</Left>
        <Height>0.25in</Height>
        <Width>1in</Width>
        <Style>
          <Border>
            <Style>None</Style>
          </Border>
          <PaddingLeft>2pt</PaddingLeft>
          <PaddingRight>2pt</PaddingRight>
          <PaddingTop>2pt</PaddingTop>
          <PaddingBottom>2pt</PaddingBottom>
        </Style>
      </Textbox>
    </ReportItems>
    <Height>2in</Height>
    <Style />
  </Body>
  <Width>6.5in</Width>
  <Page> …
Run Code Online (Sandbox Code Playgroud)

visual-studio reporting-services sql-server-2014 sql-server-data-tools visual-studio-2015

6
推荐指数
1
解决办法
5327
查看次数

TSQL可以使用命名行进行多列unpivot?

我知道这里有几个unpivot/cross apply讨论,但我找不到任何涵盖我的问题的讨论.到目前为止我得到的是以下内容:

SELECT Perc, Salary
FROM (
    SELECT jobid, Salary_10 AS Perc10, Salary_25 AS Perc25, [Salary_Median] AS Median
    FROM vCalculatedView
    WHERE JobID = '1'
    GROUP BY JobID, SourceID, Salary_10, Salary_25, [Salary_Median]
) a
UNPIVOT (
    Salary FOR Perc IN (Perc10, Perc25, Median)
) AS calc1
Run Code Online (Sandbox Code Playgroud)

现在,我想要添加其他几个列,例如.一个名为Bonus,我也想放入Perc10,Perc25和Median Rows.

作为替代方案,我也使用交叉应用进行了查询,但是在这里,似乎你不能像强制转换那样"强制"对行进行排序.换句话说,我不能有一个自定义排序,但只有一个根据表中的数字排序,如果我是正确的?至少,在这里我得到的结果就像我希望的那样,但是行的顺序是错误的,而且我没有像Perc10那样的行名称,这样会很好.

SELECT crossapplied.Salary,
       crossapplied.Bonus
FROM vCalculatedView v
CROSS APPLY (
    VALUES
          (Salary_10, Bonus_10)
        , (Salary_25, Bonus_25)
        , (Salary_Median, Bonus_Median)
) crossapplied (Salary, Bonus)
WHERE JobID = '1'
GROUP BY crossapplied.Salary,
         crossapplied.Bonus
Run Code Online (Sandbox Code Playgroud)

Perc在这里代表Percentile.

输出意图是这样的: …

t-sql sql-server unpivot cross-apply sql-server-2014

6
推荐指数
1
解决办法
275
查看次数

SQL Server:查看比单独查询慢得多

从这个 SO 答案来看,视图应该提供与直接使用相同查询相同的性能。

查询视图比直接执行 SQL 慢吗?

我有一个观点,这是不正确的。

此查询针对视图

SELECT 
    * 
FROM 
    [Front].[vw_Details] k
WHERE 
    k.Id = 970435
Run Code Online (Sandbox Code Playgroud)

需要 10 秒才能完成。从视图复制查询并将其添加WHERE k.Id = 970435到其中的操作不到 1 秒即可完成。视图没什么特别的,4LEFT JOIN秒,还有一些CASE清理数据的指令。

我怎样才能弄清楚问题是什么,或者我需要用什么来完成这个问题才能回答这个问题?

更新 1:

t-sql sql-server sql-server-2014

6
推荐指数
1
解决办法
2408
查看次数

如何使用 INSERT INTO OPENROWSET 导出到 Excel,而无需成为目标服务器上的管理员

我正在尝试授予用户使用 OPENROWSET 将数据从 SQL Server 导出到 Excel 文件的权限。

用户收到以下错误:

无法为链接服务器“(null)”初始化 OLE DB 访问接口“Microsoft.ACE.OLEDB.12.0”的数据源对象。

我们可以重现运行以下代码块的问题,我可以成功运行而用户不能:

    INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; HDR=YES;IMEX=0; Database=\\servername\exportdirectory\exportfile.xlsx', 'Select ExcelColumn from [TabName$]')
    SELECT TOP 1 SQLColumn FROM SQLTable
Run Code Online (Sandbox Code Playgroud)

我在用户之间看到的唯一区别是,能够成功运行此命令并将数据导入 Excel 的用户是托管 SQL 实例和目标目录的 Windows 服务器上的管理员。

无法运行代码的用户对excel文件所在的目标文件目录具有完全控制权限,对SQL实例具有sysadmin权限。

有没有办法允许这个用户写入这个文件而不授予 Windows 服务器本身的完整服务器管理员权限?

windows sql-server file-permissions sql-server-2014

6
推荐指数
1
解决办法
3171
查看次数