2014-09-05 17 views
6

Tôi có một bảng mà một trường sử dụng dòng phim. Nếu tôi nhấp chuột phải và tạo ra một tạo bảng T-SQL là:Tạo bảng ném một lỗi

USE [CMMS] 
GO 

/****** Object: Table [dbo].[Ficheros] Script Date: 05/09/2014 12:48:48 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[Ficheros](
    [IDFichero] [uniqueidentifier] ROWGUIDCOL NOT NULL, 
    [IDDocumento] [bigint] NOT NULL, 
    [Fichero] [varbinary](max) FILESTREAM NULL, 
CONSTRAINT [PK_Ficheros] PRIMARY KEY CLUSTERED 
(
    [IDFichero] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [FILESTREAM_CMMS_DATA], 
CONSTRAINT [IX_Ficheros] UNIQUE NONCLUSTERED 
(
    [IDDocumento] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] FILESTREAM_ON [FILESTREAM_CMMS_DATA] 

GO 

SET ANSI_PADDING OFF 
GO 

ALTER TABLE [dbo].[Ficheros] ADD CONSTRAINT [DF_Ficheros_IDFichero] DEFAULT (newid()) FOR [IDFichero] 
GO 

ALTER TABLE [dbo].[Ficheros] WITH CHECK ADD CONSTRAINT [FK_Ficheros_Documentos] FOREIGN KEY([IDDocumento]) 
REFERENCES [dbo].[Documentos] ([IDDocumento]) 
ON DELETE CASCADE 
GO 

ALTER TABLE [dbo].[Ficheros] CHECK CONSTRAINT [FK_Ficheros_Documentos] 
GO 

Khi tôi xóa bảng và sử dụng kịch bản tôi nhận được lỗi này:

Mens. 1709, Nivel 16, Estado 1, Línea 2 
No se puede usar TEXTIMAGE_ON cuando una tabla no tiene columnas de tipo text, ntext, image, varchar(max), nvarchar(max), distintas de FILESTREAM varbinary(max), xml o CLR grande. 
Mens. 4902, Nivel 16, Estado 1, Línea 2 
No se encuentra el objeto "dbo.Ficheros" porque no existe o no tiene permisos. 
Mens. 4902, Nivel 16, Estado 1, Línea 2 
No se encuentra el objeto "dbo.Ficheros" porque no existe o no tiene permisos. 
Mens. 4902, Nivel 16, Estado 1, Línea 2 
No se encuentra el objeto "dbo.Ficheros" porque no existe o no tiene permisos. 

Ứng dụng này hoạt động tốt, tiếp cận cơ sở dữ liệu và có thể thêm tệp và tải xuống, nhưng tôi không biết tại sao tập lệnh không chính xác.

Cảm ơn.

Trả lời

10

Cờ TEXTIMAGE_ON được sử dụng để chỉ định rằng bất kỳ cột văn bản hoặc hình ảnh nào sẽ được lưu trữ trong một nhóm tệp khác với phần còn lại của bảng.

Vì không có cột văn bản hoặc hình ảnh trong bảng [dbo]. [Ficheros], không thể sử dụng cờ này và ném lỗi. Hãy thử xóa cờ TEXTIMAGE_ON khỏi dòng cuối cùng của câu lệnh tạo bảng, sao cho nó đọc như sau:

) ON [PRIMARY] FILESTREAM_ON [FILESTREAM_CMMS_DATA] 
+1

Chắc chắn sẽ tốt nếu điều đó không gây ra lỗi hoặc ít nhất có tùy chọn để không gây ra lỗi, đặc biệt kể từ khi SQL tạo ra một kịch bản với nó ở nơi đầu tiên! – Dave

Các vấn đề liên quan