Suporte a FILESTREAM

Aplica-se a:SQL Server

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento de aplicativo. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) ou o Microsoft ODBC Driver for SQL Server mais recente no futuro. Para SQLNCLI que é fornecido como um componente do Mecanismo de Banco de Dados do SQL Server (versões 2012 a 2019), consulte 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 obter mais informações, consulte estes 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 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 que foram lançados antes da versão SQL Server 2005 (9.x) do SQL Server Native Client, varbinary(max) será mapeado para a imagem.

Consulte Também

Recursos do SQL Server Native Client