我有一个具有独特约束的表:
create table dbo.MyTab
(
MyTabID int primary key identity,
SomeValue nvarchar(50)
);
Create Unique Index IX_UQ_SomeValue
On dbo.MyTab(SomeValue);
Go
Run Code Online (Sandbox Code Playgroud)
哪个代码更适合检查重复项(如果找到重复项,则成功= 0)?
选项1
Declare @someValue nvarchar(50) = 'aaa'
Declare @success bit = 1;
Begin Try
Insert Into MyTab(SomeValue) Values ('aaa');
End Try
Begin Catch
-- lets assume that only constraint errors can happen
Set @success = 0;
End Catch
Select @success
Run Code Online (Sandbox Code Playgroud)
选项2
Declare @someValue nvarchar(50) = 'aaa'
Declare @success bit = 1;
IF EXISTS (Select 1 From MyTab Where SomeValue …Run Code Online (Sandbox Code Playgroud) 我在哪里可以找到有关等待类型的文档(SQL Server 2008 R2):
Select * from sys.dm_os_wait_stats where wait_type like 'PREEMPTIVE_OS%'
Run Code Online (Sandbox Code Playgroud)
例如"PREEMPTIVE_OS_CRYPTIMPORTKEY".msdn中没有记录这样的等待类型.