T-SQL INSERT INTO 禁用约束检查
T-SQL INSERT INTO disabling Constraints check
我想暂时(仅针对 t-sql 语句)禁用约束检查。
我的声明是:
insert into branchOffice(
branchOfficeTypeId,
labirintoClientiId,
companyId,
signboardName,
address,
addressNumber,
zipCode,
city,
province,
officePhoneNumber,
officeFaxNumber,
officeEmail,
statusId,
officeNotes,
squareMeters,
familyHelpersCount,
employeesCount,
workingCompanyPartnerCount)
SELECT
1,
[NewBiz.Labirinto].dbo.Clienti.id,
1,
[NewBiz.Labirinto].dbo.clienti.Insegna,
case
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)>0 then LEFT([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo, PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)-1)
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)=0 then [NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo
end as indirizzo,
case
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)>0 then right([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo,len([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)-PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)+1)
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)=0 then ''
end as numero,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleCAP,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleComune,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleProvincia,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleTelefono,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleFax,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleEMail,
[NewBiz.Labirinto].dbo.clienti.SituazioneId,
[NewBiz.Labirinto].dbo.clienti.Note,
[NewBiz.Labirinto].dbo.clienti.Superficie,
[NewBiz.Labirinto].dbo.clienti.Coadiuvanti,
[NewBiz.Labirinto].dbo.clienti.Dipendenti,
[NewBiz.Labirinto].dbo.clienti.SociLavoratori
from [NewBiz.Labirinto].dbo.Clienti
where [NewBiz.Labirinto].dbo.Clienti.AziendaId=1
约束在 table 不是单个语句
有点丑但是
放在一个事务中,取一个tablock
begin transaction
ALTER TABLE branchOffice NOCHECK CONSTRAINT ALL
insert into branchOffice with (tablock)
-- Re-enable the constraints on a table
ALTER TABLE branchOffice WITH CHECK CHECK CONSTRAINT ALL
commit transation;
我想暂时(仅针对 t-sql 语句)禁用约束检查。 我的声明是:
insert into branchOffice(
branchOfficeTypeId,
labirintoClientiId,
companyId,
signboardName,
address,
addressNumber,
zipCode,
city,
province,
officePhoneNumber,
officeFaxNumber,
officeEmail,
statusId,
officeNotes,
squareMeters,
familyHelpersCount,
employeesCount,
workingCompanyPartnerCount)
SELECT
1,
[NewBiz.Labirinto].dbo.Clienti.id,
1,
[NewBiz.Labirinto].dbo.clienti.Insegna,
case
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)>0 then LEFT([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo, PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)-1)
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)=0 then [NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo
end as indirizzo,
case
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)>0 then right([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo,len([NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)-PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)+1)
when PATINDEX('%[0-9]%',[NewBiz.Labirinto].dbo.clienti.SedeLegaleIndirizzo)=0 then ''
end as numero,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleCAP,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleComune,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleProvincia,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleTelefono,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleFax,
[NewBiz.Labirinto].dbo.clienti.SedeLegaleEMail,
[NewBiz.Labirinto].dbo.clienti.SituazioneId,
[NewBiz.Labirinto].dbo.clienti.Note,
[NewBiz.Labirinto].dbo.clienti.Superficie,
[NewBiz.Labirinto].dbo.clienti.Coadiuvanti,
[NewBiz.Labirinto].dbo.clienti.Dipendenti,
[NewBiz.Labirinto].dbo.clienti.SociLavoratori
from [NewBiz.Labirinto].dbo.Clienti
where [NewBiz.Labirinto].dbo.Clienti.AziendaId=1
约束在 table 不是单个语句
有点丑但是
放在一个事务中,取一个tablock
begin transaction
ALTER TABLE branchOffice NOCHECK CONSTRAINT ALL
insert into branchOffice with (tablock)
-- Re-enable the constraints on a table
ALTER TABLE branchOffice WITH CHECK CHECK CONSTRAINT ALL
commit transation;