我有一个用于在两个表中插入值的存储过程。
这些表具有父子关系,即第一个表具有标识列,第二个表引用第一个表。
在以下过程中,我将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 …
我有一个正在由在未知位置运行的服务更新的表。
我已经检查了所有通常与我的数据库服务器通信的服务器,但它们似乎都没有运行相关服务。
我正在尝试追踪此服务的运行位置,我想知道是否可以查看影响特定表的查询来自何处?
这可能吗?
我有一个结构化的、类型化的 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 …
是否可以通过 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
我们有 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) 我可以使用 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 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 管理对象 (SMO)编程更改密码过期的登录密码?
在工作时间内,我多次从生产服务器收到此消息。我在 SQL Server 中有一个“sa”级别的特权。
我需要测量 MSSQL-2012 编译存储过程所需的时间。
是否可以?
假设一个表存储有关某个事件的粒度数据。它有事件的日期、大约 30K 类型的类型维度和大约 100 个类别的类别维度,以及一些数字事实。
平均每天有 1500 万笔交易。每年超过 50 亿,每十年超过 60G。这不是大数据,但数量很多。
SQL Server 2012 表可以容纳多少行?
当然,较旧的数据使用频率较低,并且可能会在同一数据库的多个表中进行分区。但是这种划分应该什么时候开始呢?一年一张桌子?5年?
从评论中收集的其他信息:
考虑一下:我有足够的存储空间来保存该事件的 300 亿条记录。如果每个事件记录需要 1KB,那么我在该表中有 30TB,以及足够的存储空间(以及它的日志)。它的PK是bigint。
您如何看待一张包含历史数据的表和另一张包含最新数据的表?该表没有事务性事件,而是有一个目录,例如客户。OLTP 的目录每天都被复制到 DW 中。所以我有一个包含历史数据的表和另一个包含最新记录的表。
在我使用的设计中,ETL 提供历史表,然后我使用 row_number() 通过其 NK 获取每个实体的最新记录。运行起来非常昂贵,但通过这种方式,我保留了过去存在的实体,不再存在于 OLTP 上。
sql-server-2012 ×10
sql-server ×9
dac ×1
identity ×1
logins ×1
partitioning ×1
password ×1
performance ×1
smo ×1
xml ×1
xquery ×1