Sql server T-SQL插入到禁用约束检查中
我想暂时(仅针对t-sql语句)禁用约束检查。 我的声明是:Sql server T-SQL插入到禁用约束检查中,sql-server,tsql,insert,insert-into,Sql Server,Tsql,Insert,Insert Into,我想暂时(仅针对t-sql语句)禁用约束检查。 我的声明是: insert into branchOffice( branchOfficeTypeId, labirintoClientiId, companyId, signboardName, address, addressNumber, zipCode, city, province, officePhoneNumber, officeFaxNumber, officeEmail, statusId, officeNotes,
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
约束在表上,而不是一条语句
有点难看,但是
把它放在交易中,然后拿一张小报
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;
想象一下,我们无法访问您的数据库。我们不知道该表上有哪些约束,也不知道要禁用哪些约束。此外,您不能仅为一条语句禁用SQL Server中的约束-您必须为所有用户禁用它们。嗯。。。还是给我出了问题嗯。。。如果您没有得到具体问题,则无法帮助您。SG 547,第16级,状态0,第6行。DELETE语句与引用约束“FK_Branchhoffice_businessType_Branchhoffice”冲突。冲突发生在数据库“NuLabs”、表“dbo.branchOffice_businessType”、列“branchOfficeId”中。这份声明。。。正在检查标识信息:当前标识值“2”。DBCC执行已完成。如果DBCC打印了错误消息,请与系统管理员联系。Msg 2627,第14级,状态1,第10行违反主键约束“PK_Table1”。无法在对象“dbo.branchOffice”中插入重复键。重复的键值为(1)。