2017-04-08 101 views
0

我正在嘗試在我的asp應用程序中創建一個新表,並且爲了我的愛無法計算出如何使用主鍵語法。我正在努力解決如何創建它。 可能有人告訴我什麼是錯與查詢:在數據庫中創建一個表

CREATE EXTERNAL TABLE [dbo].[AspNetUserTestScores] 
( 
    [UserName]   NVARCHAR (256) NOT NULL, 
    [MomentsAndEnergyTestScore] NVARCHAR (256) NULL, 
    [MotionInACircleTestScore] NVARCHAR (256) NULL, 
    [UniversalGravtationTestScore] NVARCHAR (256) NULL, 
    [CapacitanceTestScore] NVARCHAR (256) NULL, 
    [ElectricFieldsTestScore] NVARCHAR (256) NULL, 
    [MagneticFieldsTestScore] NVARCHAR (256) NULL, 
    [ElectronsAndNucleiTestScore] NVARCHAR (256) NULL, 
    [ParticlePhysicsTestScore] NVARCHAR (256) NULL, 
    [NuclearDecayTestScore] NVARCHAR (256) NULL, 
    [GasLawsAndKineticTheoryTestScore] NVARCHAR (256) NULL, 
    [InternalEnergyAbsoluteZeroAndChangeOfStateTestScore] NVARCHAR (256) NULL, 
    [SpecificHeatCapacityTestScore] NVARCHAR (256) NULL, 
    [AstrophysicsTestScore] NVARCHAR (256) NULL, 
    [CosmologyTestScore] NVARCHAR (256) NULL, 
    [OscillationsTestScore] NVARCHAR (256) NULL, 
    PRIMARY KEY [UserName], 
) 


WITH 
( 
    LOCATION = '/folder/file', 
    DATA_SOURCE = [DataSource1], 
    FILE_FORMAT = [FileFormat1] 
) 

感謝

+1

我無法弄清楚你的問題究竟是什麼。 –

+0

該查詢不工作,我不知道爲什麼,錯誤是圍繞主鍵,身份證也喜歡知道什麼'WITH ( LOCATION ='/文件夾/文件', DATA_SOURCE = [數據源1], FILE_FORMAT = [FileFormat1] )' –

回答

0

這是一個有點投機,因爲documentation似乎並不完整。特別是,它沒有定義column_definition的語法,因爲它適用於CREATE EXTERNAL TABLE

從語法圖中明顯缺少的是關於約束的任何事情。 CREATE TABLEsyntax的比較可能具有啓發性 - 沒有計算列,沒有顯式約束,沒有列集,外部版本沒有分區。

該文檔是明確的,DEFAULT是不允許的。我懷疑沒有限制,這就是爲什麼你會得到一個語法錯誤。如果在顯式約束不是語法的一部分時允許內聯約束,我會感到驚訝。

但是,column_definition似乎允許內聯PRIMARY KEY約束,這就是爲什麼我認爲文檔不完整。

0

我猜問題是你沒有命名主鍵。您已經指出了主鍵基於哪個字段(UserName),但您尚未命名實際的主鍵。所以,我不知道語法的,但我認爲你需要將行更改爲類似這樣:

pk_UserName PRIMARY KEY [用戶名]

你可能也不需要在逗號隊伍的盡頭。