在数据库中创建一个表

时间:2017-04-08 15:50:38

标签: sql asp.net sql-server

我正在尝试在我的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] 
) 

由于

2 个答案:

答案 0 :(得分:0)

这有点推测,因为documentation似乎并不完整。特别是,它没有定义column_definition的语法,因为它适用于CREATE EXTERNAL TABLE

值得注意的是,语法图中没有任何关于约束的内容。与CREATE TABLE的{​​{3}}进行比较可能具有指导意义 - 没有计算列,没有显式约束,没有列集,没有外部版本的分区。

文档明确指出不允许DEFAULT。我怀疑不允许任何约束,这就是你得到语法错误的原因。如果在显式约束看起来不是语法的一部分时允许使用内联约束,我会感到惊讶。

但是,column_definition似乎允许内联PRIMARY KEY约束,这就是我认为文档不完整的原因。

答案 1 :(得分:0)

我猜测问题是你还没有命名主键。您已指明主键所基于的字段(UserName),但您尚未命名实际的主键。所以我不确定语法,但我认为你需要改变这样的行:

pk_UserName PRIMARY KEY [用户名]

你可能也不需要在行尾添加逗号。