标签: sql-server-2012

Scope_Identity() 在表中插入第一行后返回 null

我有一个用于在两个表中插入值的存储过程。

这些表具有父子关系,即第一个表具有标识列,第二个表引用第一个表。

在以下过程中,我将Scope_Identity()值作为列返回:

ALTER PROCEDURE [dbo].[Insert_Header_Details_Tables]
    (
        @ProcessID [int]=null, 
        @FileName [varchar](50)=null,
        @VendorName [varchar](250)=null, 
        @LastName [nvarchar](100)=null,
        @FirstName [nvarchar](100)=null,
        @isFirstMSH [bit]
    )    
AS
--BEGIN TRANSACTION 
-- Insert into Jobs table
IF(@isFirstMSH = 1)
BEGIN
INSERT INTO LabStagingHeader
             ([FileName], 
             [VendorName] 
            ) 
    VALUES  (@FileName,
             @VendorName
            )
END
-- Retrieve the automatically @ProcID VALUE from the Header table

SET @ProcessID = SCOPE_IDENTITY()

-- Insert new values into LabStagingDetails table
INSERT INTO LabStagingDetails 
            ([ProcessID],
            [LastName],
            [FirstName]     
            ) 
    VALUES (@ProcessID, 
            @LastName,
            @FirstName
            ) 
Run Code Online (Sandbox Code Playgroud)

问题是当 isFirstMSH …

sql-server identity sql-server-2012

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

确定针对表的查询的原始 IP 地址?

我有一个正在由在未知位置运行的服务更新的表。

我已经检查了所有通常与我的数据库服务器通信的服务器,但它们似乎都没有运行相关服务。

我正在尝试追踪此服务的运行位置,我想知道是否可以查看影响特定表的查询来自何处?

这可能吗?

sql-server sql-server-2012

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

使用默认命名空间和不一致的根节点解析类型化 XML

我有一个结构化的、类型化的 xml 文件。

<WebService xmlns="http://www.orbis-software.com/WebSvcCon">
 <NewLeads>
  <OutputSchema>
  <root xmlns="" type="array">
   <item type="object">
   <SaleProperty type="object">
    <Type type="string">Freehold</Type>
    <PostDistrict type="string">xxx</PostDistrict>
    <Address type="string">address</Address>
     <Value type="number">17.0</Value>
   </SaleProperty>
   <Transaction type="string">SaleOnly</Transaction>
   <Quote type="object">
    <Sale type="object">
     <Fees type="number">450.0</Fees>
     <Disbursements type="number">0.0</Disbursements>
     <StampDuty type="number">0.0</StampDuty>
     <Total type="number">450.0</Total>
    </Sale>
   <Discount type="number">0.0</Discount>
   <VAT type="number">90.0</VAT>
   <Total type="number">540.0</Total>
  </Quote>
  <MoverId type="number">12345678</MoverId>
  <Name type="string">Mr AS</Name>
  <Email type="string">as@yahoo.ppp</Email>
  <Telephone type="string">0123456789</Telephone>
  <Comments type="string">Joint ownership</Comments>
  <EstimatedMoveDate type="string">2015-11-25T05:57:00</EstimatedMoveDate>
  <Charge type="number">4.99</Charge>
  <ChargeStatus type="string">Chargeable</ChargeStatus>
 </item>
</root>
</OutputSchema></NewLeads></WebService>
Run Code Online (Sandbox Code Playgroud)

此外,对象 SaleProperty 可能会丢失,而可能是对象 PurchaseProperty。类似地,对象 Quote 可以包含 Sale、Purchase、Remortgage 对象或同时包含 Sale 和 Purchase 我找不到任何关于通过 SQL Server …

xml sql-server sql-server-2012 xquery

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

是否可以通过 DAC Connection 连接 MS SQL Server Express 2012?

是否可以通过 DAC 连接 MS SQL Server 2012 Express。从 SQL Server 2012 Enterprise 迁移到 MS SQL Server 2012 Express 后,存在一些性能问题。当我使用此 TSQL 签出时

select * from sys.dm_os_schedulers;
Run Code Online (Sandbox Code Playgroud)

调度未显示 DAC(专用管理员连接)调度程序 ID。

任何想法或建议将不胜感激。

performance sql-server-2012 windows-server dac performance-tuning

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

SQL 查询中 WHERE 子句的替代方案

我们有 SQL Server 2012 Enterprise Edition 通过存储过程运行以下查询:

declare @TopX int = 1000
declare @stores Table (Store varchar(5), LastDate datetime, LastId int, RangeEnd datetime)
insert into @stores 
  select * 
  from (select SourceStore, '2014-01-01' as i, null as ii, '2014-01-08' as iii 
        from StoreConfig.dbo.Version 
        group by SourceStore
       ) t 
  where (ABS(CAST((BINARY_CHECKSUM(*) * RAND()) as int)) % 100) < 50

IF OBJECT_ID('tempdb..#agreements') IS NOT NULL
DROP TABLE #agreements
IF OBJECT_ID('tempdb..#stores') IS NOT NULL
DROP TABLE #stores

select Store, 
       isnull(LastDate, '1899-01-01') StartDate, 
       isnull(LastId, -1) …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 cardinality-estimates

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

夜班员工的先进和后出时间

我可以使用 min 和 max来让FirstIn - LastOut离开白班员工

select 
    UserId,
    [date], 
    min(convert(char(5), [Login], 108)) as FirstIN,
    max(convert(char(5), LogOut,108)) as LastOUT
from Employee
group by UserId, [date]
Run Code Online (Sandbox Code Playgroud)

但我不能为夜班员工做,比如下午 5:30 到第二天早上 2:30。同一天(第二天)他们将在下午 5:30 再次到来。

轮班表

select 
    UserId,
    [date], 
    min(convert(char(5), [Login], 108)) as FirstIN,
    max(convert(char(5), LogOut,108)) as LastOUT
from Employee
group by UserId, [date]
Run Code Online (Sandbox Code Playgroud)

员工表

UserID   ShiftName      Start   End     
2267     Night Shift-1  17:30   02:30 
Run Code Online (Sandbox Code Playgroud)

期望输出

UserID LogIn                    LogOut                    LogDate
2267   2016-01-04 20:52:08.000  2016-01-04 22:09:22.000   2016-01-04 00:00:00.000
2267   2016-01-04 23:00:07.000  2016-01-04 23:00:07.000 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

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

查询处理器耗尽了内部资源 - 超长的 sql 查询

我有一个 SQL Server 2012 数据库,其中包含大约 2000 个表(每日日志文件),每个表大约有 2000 万条记录。输出select @@Version

Microsoft SQL Server 2012 - Windows NT 6.2 上的 11.0.2100.60 (X64) 标准版(64 位)(内部版本 9200:)

现在,为了生成年度或 3 年报告,我需要对每个表运行查询并“联合所有”结果。查询是动态生成的,通常规模很小。但是在执行“Union all: with 1000 table”之后,它变成了一个巨大的查询。

在处理此类查询时,我收到如下突出显示的错误。

该应用程序已经构建、测试并处于实时生产中,因此我无法使用临时表或哈希表来存储中间结果。

现在,我如何摆脱此错误消息?

查询处理器耗尽了内部资源,无法生成查询计划。这是一种罕见的事件,仅适用于极其复杂的查询或引用大量表或分区的查询。

sql-server sql-server-2012

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

在 SQL Server 中处理过期的 SQL 登录密码

是否可以使用SQL Server 管理对象 (SMO)编程更改密码过期的登录密码?

在工作时间内,我多次从生产服务器收到此消息。我在 SQL Server 中有一个“sa”级别的特权。

截屏

工作环境

  1. Microsoft SQL Server 2012 Express
  2. 视窗服务器 2012 R2
  3. VMware, Inc. VMware虚拟平台

sql-server sql-server-2012 smo logins password

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

测量存储过程的编译时间

我需要测量 MSSQL-2012 编译存储过程所需的时间。

是否可以?

sql-server execution-plan sql-server-2012

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

SQL Server 2012 表可以容纳多少行,我应该在什么时候对其进行分区?

假设一个表存储有关某个事件的粒度数据。它有事件的日期、大约 30K 类型的类型维度和大约 100 个类别的类别维度,以及一些数字事实。

平均每天有 1500 万笔交易。每年超过 50 亿,每十年超过 60G。这不是大数据,但数量很多。

SQL Server 2012 表可以容纳多少行?

当然,较旧的数据使用频率较低,并且可能会在同一数据库的多个表中进行分区。但是这种划分应该什么时候开始呢?一年一张桌子?5年?

从评论中收集的其他信息:

考虑一下:我有足够的存储空间来保存该事件的 300 亿条记录。如果每个事件记录需要 1KB,那么我在该表中有 30TB,以及足够的存储空间(以及它的日志)。它的PK是bigint。

您如何看待一张包含历史数据的表和另一张包含最新数据的表?该表没有事务性事件,而是有一个目录,例如客户。OLTP 的目录每天都被复制到 DW 中。所以我有一个包含历史数据的表和另一个包含最新记录的表。

在我使用的设计中,ETL 提供历史表,然后我使用 row_number() 通过其 NK 获取每个实体的最新记录。运行起来非常昂贵,但通过这种方式,我保留了过去存在的实体,不再存在于 OLTP 上。

sql-server partitioning sql-server-2012

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