Suporte a FILESTREAM
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 obter mais informações sobre o suporte a FILESTREAM aprimorado, consulte 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 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. Não é possível usar ITableDefinition no OLE DB 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, você pode usar a coluna is_filestream da exibição do 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 seu cliente tiver sido compilado com a versão do SQL Server Native Client que estava incluída no SQL Server 2005, e o aplicativo se conectar ao SQL Server 2012, o comportamento de varbinary(max) será compatível com o SQL Server 2005. 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 do SQL Server Native Client, varbinary(max) será mapeado para imagem.