2017-03-08 14 views
0

如果對數據庫執行它,它的工作原理!但嘗試建立在VS sql服務器項目上沒有。爲什麼不能用這個對象在VS上構建sql server項目

CREATE TABLE [dbo].[Recebimento_Arquivo] (
    [RAr_Codigo]  INT      IDENTITY (1, 1) NOT NULL, 
    [Rar_ID_FS]  UNIQUEIDENTIFIER   DEFAULT (newid()) ROWGUIDCOL NOT NULL, 
    [Rec_Codigo]  BIGINT      NULL, 
    [FAr_Codigo]  INT      NOT NULL, 
    [RAr_Arquivo]  VARBINARY (MAX) FILESTREAM NULL, 
    [RAr_Dat_Cadastro] DATETIME     CONSTRAINT [dnfRecebimentoArquivo_RArDatCadastro] DEFAULT (getdate()) NULL, 
    CONSTRAINT [PK_Recebimento_Arquivo] PRIMARY KEY CLUSTERED ([RAr_Codigo] ASC) ON [FG_ARQUIVOS_DADO], 
    CONSTRAINT [FK_Recebimento_Arquivo_FAr_Codigo] FOREIGN KEY ([FAr_Codigo]) REFERENCES [dbo].[Formato_Arquivo] ([FAr_Codigo]), 
    UNIQUE NONCLUSTERED ([Rar_ID_FS] ASC) ON [FG_ARQUIVOS_DADO] 
) FILESTREAM_ON [FG_ARQUIVOS_FS_01]; 

它導致

Severity Code Description Project File Line Suppression State 
Error  SQL71566: Filegroup: [FG_ARQUIVOS_FS_01] cannot not be set on both the Table: [dbo].[Recebimento_Arquivo] and the clustered Primary Key: [dbo].[PK_Recebimento_Arquivo].  
+0

集羣索引/密鑰本身就是表 - 很可能根本無法單獨爲它設置文件組。 – Arvo

+0

如果我只是省略了主鍵上的文件組,它就可以工作,但需要理解爲什麼在主要文件組上解釋它不起作用! –

+0

問題不是主要的,而是聚集的關鍵。集羣鍵本身就是數據(表),它不能位於另一個文件組(它們是相同的數據) - 並且在這種情況下sql server可能根本不允許設置它。 – Arvo

回答

1

乍一看,看起來是VS SQL Server項目中的一個bug。

正如其他評論所說,你不能爲聚簇鍵和表格指定不同的文件組。但那不是你所做的。最終的文件組規範適用於存儲在varbinary(max)列中的文件流數據。根據聯機叢書中的語法描述,這應該是有效的 - 並且在SQL Server上直接執行它時運行的事實直接證實了這一點。

+0

是真的這是Visual Studio中的一個錯誤,用於解決我的項目中的問題我所做的只是省略了主鍵中的FileGroup,並且項目編譯正常 –

0

答案是你的錯誤本身,

Severity Code Description Project File Line Suppression State 
Error  SQL71566: Filegroup: [FG_ARQUIVOS_FS_01] cannot not be set on both the Table: [dbo].[Recebimento_Arquivo] and the clustered Primary Key: [dbo].[PK_Recebimento_Arquivo]. 

你需要有不同的文件組和主鍵標識。

+0

他們是不同的! –

+0

查看其他表格 – user7417866

+0

他們是不同的!表文件組爲FILESTREAM_ON [FG_ARQUIVOS_FS_01],主鍵文件組爲[FG_ARQUIVOS_DADO]。 –

相關問題