Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
O modelo de objeto XML Bulk Load do Microsoft SQL Server consiste no objeto SQLXMLBulkLoad. Este objeto suporta os seguintes métodos e propriedades.
Methods
Execute
O carregamento massivo dos dados usando o ficheiro de esquema e o ficheiro de dados (ou fluxo) fornecidos como parâmetros.
Propriedades
BulkLoad
Especifica se deve ser realizada uma Carga em Massa. Esta propriedade é útil se quiser gerar apenas os esquemas (veja as propriedades SchemaGen, SGDropTables e SGUseID que se seguem) e não realizar uma carga em massa. Isto é uma propriedade booleana. Quando a propriedade está definida para TRUE, o XML Bulk Load é executado. Quando está definido para FALSE, o XML Bulk Load não é executado.
O valor padrão é VERDADEIRO.
Restrições de verificação
Especifica se as restrições (como restrições devido à relação chave primária/chave estrangeira entre as colunas) especificadas na coluna devem ser verificadas quando o XML Bulk Load insere dados nas colunas. Isto é uma propriedade booleana.
Quando a propriedade está definida como TRUE, o XML Bulk Load verifica as restrições para cada valor inserido (o que significa que uma violação de restrição resulta num erro).
Observação
Para deixar esta propriedade como FALSE, deve ter permissões de ALTERAR TABELA nas tabelas alvo. Para obter mais informações, consulte ALTER TABLE (Transact-SQL).
O valor padrão é FALSE. Quando está definido para FALSE, o XML Bulk Load ignora as restrições durante uma operação de inserção. Na implementação atual, deve definir as tabelas pela ordem das relações de chave primária e estrangeira no esquema de mapeamento. Ou seja, uma tabela com chave primária deve ser definida antes da tabela correspondente com a chave estrangeira; caso contrário, o XML Bulk Load falha.
Note que, se a propagação de ID estiver a ser feita, esta opção não se aplica e a verificação de restrições ficará ativada. Isto ocorre quando KeepIdentity=False e existe uma relação definida em que o pai é um campo identidade e o valor é dado ao filho à medida que é gerado.
ConnectionCommand
Identifica um objeto de ligação existente (por exemplo, o objeto de comandos ADO ou ICommand) que o XML Bulk Load deve usar. Podes usar a propriedade ConnectionCommand em vez de especificar uma string de ligação com a propriedade ConnectionString. A propriedade Transação tem de ser definida como TRUE se usar o ConnectionCommand.
Se usar ambas as propriedades ConnectionString e ConnectionCommand, o XML Bulk Load usa a última propriedade especificada.
O valor padrão é NULL.
ConnectionString
Identifica a cadeia de ligação OLE DB que fornece a informação necessária para estabelecer uma ligação a uma instância da base de dados. Se usar ambas as propriedades ConnectionString e ConnectionCommand, o XML Bulk Load usa a última propriedade especificada.
O valor padrão é NULL.
Ficheiro de Registo de Erros
Especifica o nome do ficheiro em que o XML Bulk Load regista erros e mensagens. O padrão é uma cadeia vazia, caso em que não ocorre registo.
FireTriggers
Especifica se os gatilhos definidos nas tabelas de alvo devem disparar durante a operação de Carga a Granel. O padrão é FALSO.
Quando definidos para TRUE, os gatilhos disparam normalmente durante as operações de inserção.
Observação
Para deixar esta propriedade como FALSE, deve ter permissões de ALTERAR TABELA nas tabelas alvo. Para obter mais informações, consulte ALTER TABLE (Transact-SQL).
Note que, se a Propagação de ID estiver a ser feita, esta opção não se aplica e os gatilhos ficarão ativados. Isto ocorre quando KeepIdentity=False e existe uma relação definida em que o pai é um campo identidade e o valor é dado ao filho à medida que é gerado.
ForceTableLock
Especifica se as tabelas em que o XML Bulk Load copia os dados devem ser bloqueadas durante a duração do Bulk Load. Isto é uma propriedade booleana. Quando a propriedade é definida para TRUE, o XML Bulk Load adquire bloqueios de tabela durante a duração do Bulk Load. Quando está definido para FALSE, o XML Bulk Load adquire um bloqueio de tabela cada vez que insere um registo numa tabela.
O valor padrão é FALSE.
IgnorarChavesDuplicadas
Especifica o que fazer se for feita uma tentativa de inserir valores duplicados numa coluna de chave. Se esta propriedade for definida como TRUE e for feita uma tentativa de inserir um registo com um valor duplicado numa coluna de chave, o SQL Server não insere esse registo. Mas insere o registo seguinte; assim, a operação de Carga a Granel não falha. Se esta propriedade estiver definida como FALSE, o Bulk Load falha quando se tenta inserir um valor duplicado numa coluna de chave.
Quando a propriedade IgnoreDuplicateKeys é definida para TRUE, é emitida uma instrução COMMIT para cada registo inserido na tabela. Isto atrasa o desempenho. A propriedade só pode ser definida como TRUE quando a propriedade Transação está definida como FALSE, porque o comportamento transacional é implementado usando ficheiros.
O valor padrão é FALSE.
KeepIdentity
Especifica como lidar com os valores de uma coluna de tipo Identidade no ficheiro de origem. Isto é uma propriedade booleana. Quando a propriedade é definida para TRUE, o XML Bulk Load atribui os valores especificados no ficheiro de origem à coluna identidade. Quando a propriedade está definida como FALSE, a operação de carregamento em massa ignora os valores da coluna identidade especificados na fonte. Neste caso, o SQL Server atribui um valor à coluna identidade.
Se o Bulk Load envolver uma coluna que é uma chave estrangeira que se refere a uma coluna de identidade onde são armazenados valores gerados pelo SQL Server, o Bulk Load propaga adequadamente esses valores de identidade para a coluna da chave estrangeira.
O valor desta propriedade aplica-se a todas as colunas envolvidas na carga global. O valor padrão é VERDADEIRO.
Observação
Para deixar esta propriedade como VERDADEIRA, deve ter permissões de ALTERAR TABELA nas tabelas alvo. Caso contrário, deve ser definido como FALSE. Para obter mais informações, consulte ALTER TABLE (Transact-SQL).
KeepNulls
Especifica que valor usar para uma coluna que não tenha um atributo correspondente ou elemento filho no documento XML. Isto é uma propriedade booleana. Quando a propriedade é definida para TRUE, o XML Bulk Load atribui um valor nulo à coluna. Não atribui o valor padrão da coluna, se existir, como definido no servidor. O valor desta propriedade aplica-se a todas as colunas envolvidas na carga global.
O valor padrão é FALSE.
SchemaGen
Especifica se deve criar as tabelas necessárias antes de realizar uma operação de Carregamento em Massa. Isto é uma propriedade booleana. Se esta propriedade for definida para TRUE, as tabelas identificadas no esquema de mapeamento são criadas (a base de dados deve existir). Se uma ou mais das tabelas já existirem na base de dados, a propriedade SGDropTables determina se essas tabelas pré-existentes devem ser eliminadas e recriadas.
O valor padrão da propriedade SchemaGen é FALSE. O SchemaGen não cria restrições de CHAVE PRIMÁRIA nas tabelas recém-criadas. No entanto, a SchemaGen cria restrições de CHAVE ESTRANGEIRA na base de dados se conseguir encontrar anotações correspondentes dos campos sql: relationship e sql:key no esquema de mapeamento e se o campo de chave consistir numa única coluna.
Note que, se definir a propriedade SchemaGen para TRUE, o XML Bulk Load faz o seguinte:
Cria as tabelas necessárias a partir dos nomes dos elementos e atributos. Por isso, é importante que não utilize palavras reservadas no SQL Server para nomes de elementos e atributos no esquema.
Devolve dados de overflow para qualquer coluna designada usando o campo sql:overflow no formato de tipo de dados xml .
SGDropTables
Especifica se as tabelas existentes devem ser retiradas e recriadas. Usa esta propriedade quando a propriedade SchemaGen está definida para TRUE. Se SGDropTables for FALSO, as tabelas existentes são mantidas. Quando esta propriedade é VERDADEIRA, as tabelas existentes são eliminadas e recriadas.
O valor padrão é FALSE.
SGUseID
Especifica se o atributo no esquema de mapeamento identificado como tipo id pode ser usado na criação de uma restrição PRIMARY KEY quando a tabela é criada. Use esta propriedade quando a propriedade SchemaGen estiver definida como TRUE. Se o SGUseID for TRUE, a utilidade SchemaGen utiliza um atributo para o qual dt:type="id" é especificado como coluna de chave primária e adiciona a restrição de CHAVE PRIMÁRIA apropriada ao criar a tabela.
O valor padrão é FALSE.
TempFilePath
Especifica o caminho do ficheiro onde o XML Bulk Load cria os ficheiros temporários para um bulk load transacionado. (Esta propriedade só é útil quando a propriedade Transação está definida como TRUE.) Deve garantir que a conta SQL Server usada para o XML Bulk Load tem acesso a este caminho. Se esta propriedade não estiver definida, o XML Bulk Load armazena os ficheiros temporários na localização especificada na variável de ambiente TEMP.
Transação
Especifica se a Carga em Massa deve ser feita como uma transação, caso em que o rollback está garantido se a Carga em Massa falhar. Isto é uma propriedade booleana. Se a propriedade estiver definida como TRUE, o Bulk Load ocorre num contexto transacional. A propriedade TempFilePath é útil apenas quando a Transação está definida como TRUE.
Observação
Se estiver a carregar dados binários (como os tipos de dados XML bin.hex, bin.base64 para os tipos de dados binários, imagem SQL Server), a propriedade Transação deve ser definida como FALSE.
O valor padrão é FALSE.
XMLFragment
Especifica se os dados de origem são um fragmento XML. Um fragmento XML é um documento XML sem um único elemento de topo (raiz). Isto é uma propriedade booleana. Esta propriedade deve ser definida como TRUE se o ficheiro de origem consistir num fragmento XML.
O valor padrão é FALSE.