Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como usar as instruções Transact-SQL INSERT, UPDATE e DELETE para gerenciar dados FILESTREAM.
Observação
Os exemplos neste tópico exigem o banco de dados e a tabela habilitados para FILESTREAM criados em Criar um banco de dados FILESTREAM-Enabled e criar uma tabela para armazenar dados FILESTREAM.
Inserindo uma linha que contém dados FILESTREAM
Para adicionar uma linha a uma tabela que dá suporte a dados FILESTREAM, use a instrução Transact-SQL INSERT. Ao inserir dados em uma coluna FILESTREAM, você pode inserir NULL ou um varbinary(max) valor.
Inserindo NULL
O exemplo a seguir mostra como inserir NULL. Quando o valor FILESTREAM é NULL, o Mecanismo de Banco de Dados não cria um arquivo no sistema de arquivos.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 1, NULL);
GO
Inserindo um registro de Zero-Length
O exemplo a seguir mostra como usar INSERT para criar um registro de comprimento zero. Isso é útil para quando você deseja obter um identificador de arquivo, mas manipulará o arquivo usando APIs Win32.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 2,
CAST ('' as varbinary(max)));
GO
Criando um arquivo de dados
O exemplo a seguir mostra como usar INSERT para criar um arquivo que contenha dados. O Mecanismo de Banco de Dados converte a cadeia de caracteres Seismic Data em um varbinary(max) valor. FILESTREAM criará o arquivo do Windows se ele ainda não existir. Em seguida, os dados são adicionados ao arquivo de dados.
INSERT INTO Archive.dbo.Records
VALUES (newid (), 3,
CAST ('Seismic Data' as varbinary(max)));
GO
Quando você seleciona todos os dados do Archive.
dbo.Records tabela, os resultados são semelhantes aos que são apresentados na tabela a seguir. No entanto, a Id coluna conterá GUIDs diferentes.
| ID | Número de Série | Retomar |
|---|---|---|
C871B90F-D25E-47B3-A560-7CC0CA405DAC |
1 |
NULL |
F8F5C314-0559-4927-8FA9-1535EE0BDF50 |
2 |
0x |
7F680840-B7A4-45D4-8CD5-527C44D35B3F |
3 |
0x536569736D69632044617461 |
Atualizando dados FILESTREAM
Você pode usar Transact-SQL para atualizar os dados no arquivo do sistema de arquivos; embora, talvez você não queira fazer isso quando precisar transmitir grandes quantidades de dados para um arquivo.
O exemplo a seguir substitui qualquer texto no registro do arquivo pelo texto Xray 1.
UPDATE Archive.dbo.Records
SET [Chart] = CAST('Xray 1' as varbinary(max))
WHERE [SerialNumber] = 2;
Excluindo dados FILESTREAM
Ao excluir uma linha que contém um campo FILESTREAM, você também exclui os arquivos subjacentes do sistema de arquivos. A única maneira de excluir uma linha e, portanto, o arquivo, é usar a instrução DELETE Transact-SQL.
O exemplo a seguir mostra como excluir uma linha e seus arquivos do sistema de arquivos associados.
DELETE Archive.dbo.Records
WHERE SerialNumber = 1;
GO
Quando você seleciona todos os dados da dbo.Archive tabela, a linha desaparece. Você não pode mais usar o arquivo associado.
Observação
Os arquivos subjacentes são removidos pelo coletor de lixo do FILESTREAM.
Consulte Também
Habilitar e configurar o FILESTREAM
Evitar conflitos com operações de banco de dados em aplicativos FILESTREAM