none
Constraint check com subquery RRS feed

  • Pergunta

  • Boa tarde,  é possivel realizar a tarefa abaixo, e como fazer?

     

    CREATE TABLE [dbo].[CotacaoFornecedor](
    	[ID_CotacaoFornecedor] [int] IDENTITY(1,1) NOT NULL,
    	[ID_Cotacao] [int] NOT NULL,	
    	[ID_Status] [int] NOT NULL,
    	[ID_Fornecedor] [int] NOT NULL,
    	[ID_ContatoFornecedor] [int] 
    
    --QUERO ADICIONAR UMA CONTRAINT Check com a seguinte Expression:
    
    [ID_ContatoFornecedor] IN SELECT ID_Contato From RH103_Contatos where ID_Pessoa = [ID_Fornecedor])
    

     Obrigado

    sexta-feira, 1 de julho de 2011 19:26

Respostas



  • CREATE TABLE [dbo].[CotacaoFornecedor](
    	[ID_CotacaoFornecedor] [int] IDENTITY(1,1) NOT NULL,
    	[ID_Cotacao] [int] NOT NULL,	
    	[ID_Status] [int] NOT NULL,
    	[ID_Fornecedor] [int] NOT NULL,
    	[ID_ContatoFornecedor] [int] references RH103_Contatos
    )

    Se este where do check que voce colocou for realmente necessario, sera preciso criar uma trigger de isnert. 

    Fabrizzio A. Caputo
    Certificações: Oracle OCA 11g, MCTS SQL Server 2008 Implementation and Maintenance
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 1 de julho de 2011 19:36
    Moderador
  • Dyego,

    Você poderia me explicar melhor o que realmente deseja fazer?

    Utilizar Subquerys em constraints do tipo Check não é permitido pelo SQL Server.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 2 de julho de 2011 00:19

Todas as Respostas



  • CREATE TABLE [dbo].[CotacaoFornecedor](
    	[ID_CotacaoFornecedor] [int] IDENTITY(1,1) NOT NULL,
    	[ID_Cotacao] [int] NOT NULL,	
    	[ID_Status] [int] NOT NULL,
    	[ID_Fornecedor] [int] NOT NULL,
    	[ID_ContatoFornecedor] [int] references RH103_Contatos
    )

    Se este where do check que voce colocou for realmente necessario, sera preciso criar uma trigger de isnert. 

    Fabrizzio A. Caputo
    Certificações: Oracle OCA 11g, MCTS SQL Server 2008 Implementation and Maintenance
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    sexta-feira, 1 de julho de 2011 19:36
    Moderador
  • Dyego,

    Você poderia me explicar melhor o que realmente deseja fazer?

    Utilizar Subquerys em constraints do tipo Check não é permitido pelo SQL Server.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 2 de julho de 2011 00:19
  • Diego

     

    Caso as colunas referenciadas sejam Chaves primarias acho que você pode fazer um Fk desse jeito.

    ALTER TABLE [CotacaoFornecedor] ADD FOREIGN KEY([ID_ContatoFornecedor], [ID_Fornecedor])
    REFERENCES RH103_Contatos ( ID_Contato , ID_Pessoa )
    GO
    
    

    Sem mais

     

    Victor Perez

    segunda-feira, 4 de julho de 2011 20:26