Compartilhar via


Suporte a FILESTREAM

Aplica-se: SQL Server

Importante

O SQL Server Native Client (SNAC) não é fornecido com:

  • SQL Server 2022 (16.x) e versões posteriores
  • SQL Server Management Studio 19 e versões posteriores

O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o provedor OLE DB para SQL Server (SQLOLEDB) da Microsoft herdado não são recomendados para desenvolver um novo aplicativo.

Para novos projetos, use um dos seguintes drivers:

Para SQLNCLI que é fornecido como um componente do Mecanismo de Banco de Dados do SQL Server (versões 2012 a 2019), confira esta exceção de Ciclo de Vida de Suporte.

FILESTREAM é uma forma de armazenar e acessar valores altos de binário, por meio do SQL Server ou por acesso direto ao sistema de arquivos do Windows. Um valor binário grande é um valor superior a 2 gigabytes (GB). Para saber mais sobre a compatibilidade com o FILESTREAM avançado, confira FILESTREAM (SQL Server).

Quando uma conexão de banco de dados for aberta, @@TEXTSIZE será definido, por padrão, como -1 ("ilimitado").

Também é possível acessar e atualizar colunas FILESTREAM usando as APIs do sistema de arquivos do Windows.

Para Mais informações, consulte os seguintes tópicos:

Consultando colunas FILESTREAM

Conjuntos de linhas de esquema no OLE DB não relatarão se uma coluna é uma coluna FILESTREAM. ITableDefinition no OLE DB não pode ser usado para criar uma coluna FILESTREAM.

Funções de catálogo, como SQLColumns no ODBC, não relatarão se uma coluna é uma coluna FILESTREAM.

Para criar colunas FILESTREAM ou detectar quais colunas existentes são colunas FILESTREAM, use a coluna is_filestream da exibição de catálogo sys.columns.

A seguir, é mostrado um exemplo:

-- Create a table with a FILESTREAM column.  
CREATE TABLE Bob_01 (GuidCol1 uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(), IntCol2 int, varbinaryCol3 varbinary(max) FILESTREAM);  
  
-- Find FILESTREAM columns.  
SELECT name FROM sys.columns WHERE is_filestream=1;  
  
-- Determine whether a column is a FILESTREAM column.  
SELECT is_filestream FROM sys.columns WHERE name = 'varbinaryCol3' AND object_id IN (SELECT object_id FROM sys.tables WHERE name='Bob_01');  

Compatibilidade com níveis inferiores

Se o cliente tiver sido compilado usando a versão do SQL Server Native Client incluída no SQL Server 2005 (9.x) e o aplicativo se conectar a uma versão mais recente do SQL Server, o comportamento varbinary(max) será compatível com o SQL Server 2005 (9.x). Ou seja, o tamanho máximo de dados retornados será limitado a 2 GB. Para valores de resultado superiores a 2 GB, ocorrerá truncamento e será retornado um aviso de "truncamento à direita de dados de cadeia de caracteres".

Quando a compatibilidade de tipo de dados estiver definida como 80, o comportamento do cliente será consistente com o comportamento de clientes de nível inferior.

Para clientes que usam SQLOLEDB ou outros provedores lançados antes da versão SQL Server 2005 (9.x) do SQL Server Native Client, varbinary(max) será mapeado para image.

Confira também

Recursos do SQL Server Native Client