SQLServerExpress 2012/WIndows Server 2008R2
Create filestream enabled database:
CREATE DATABASE ISR PRIMARY (NAME = FileStream1, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\FileStreamDat1.mdf'), FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM ( NAME= FileStream3, FILENAME = 'F:\FileStream1') LOG ON ( NAME = FileStreamLog1, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\FileStreamLog1.ldf') GO
Create Filestream enabled table:
USE [ISR] GO /****** Object: Table [dbo].[Documents] Script Date: 2/22/2013 8:56:59 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Documents]( [DocumentID] [bigint] IDENTITY(1,1) NOT NULL, [FilestreamID] [uniqueidentifier] ROWGUIDCOL NOT NULL, [TextIndex] [varchar](50) NULL, [TextType] [varchar](10) NULL, [Doc] [varbinary](max) FILESTREAM NOT NULL, [Text] [varbinary](max) FILESTREAM NOT NULL, [Title] [nvarchar](50) NOT NULL, [UserID] [int] NOT NULL, [FileName] [nvarchar](400) NULL, [FileExtension] [nvarchar](8) NULL, [ModifiedDate] [datetime] NULL, CONSTRAINT [PK_Document] PRIMARY KEY CLUSTERED ( [DocumentID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [FileStreamGroup1], CONSTRAINT [UQ__Document__6A858DF292516B12] UNIQUE NONCLUSTERED ( [FilestreamID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], UNIQUE NONCLUSTERED ( [FilestreamID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] FILESTREAM_ON [FileStreamGroup1] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[Documents] ADD DEFAULT (newsequentialid()) FOR [FilestreamID] GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Key Field' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'DocumentID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Filestream unique ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'FilestreamID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Full Text Index' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'TextIndex' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'may be used for full text search' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'TextType' GO
Create Full Text Catalog:
create fulltext catalog FileStreamFTCatalog ON FILEGROUP FileStreamGroup1 AS DEFAULT
Create Full Text Index:
Create fulltext index on dbo.Documents (Title, Text TYPE COLUMN TextType) Key INDEX PK_Document ON FileStreamFTCatalog WITH Change_Tracking AUTO
Create word file that consists of a single sentence: "This is a sample document." Save as docx and pdf. Read into filestream:
DECLARE @Doc AS VARBINARY(MAX), @Text AS VARBINARY(MAX) -- Load the image data SELECT @doc = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET( BULK 'C:\This is a sample document.docx', SINGLE_BLOB ) AS x SELECT @text = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET( BULK 'C:\This is a sample document.docx', SINGLE_BLOB ) AS x INSERT INTO [dbo].[Documents] (Doc,Text,FileName, TextType, Title, UserID,ModifiedDate) VALUES (@doc,@text,'This is a sample document','.docx','This is a sample document',1, getdate())
Check to see if docs are there:
SELECT Doc.PathName() AS 'PathName', Title, TextType, FIlestreamID FROM Documents;
They are.
Run full text query:
Select * FROM Documents WHERE CONTAINS (Text, 'This')
NO RESULTS.
What am I doing wrong????