Sql server 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,

我想暂时(仅针对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

约束在表上,而不是一条语句
有点难看,但是
把它放在交易中,然后拿一张小报

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)。