我正在尝试在我的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]
)
由于
答案 0 :(得分:0)
这有点推测,因为documentation似乎并不完整。特别是,它没有定义column_definition
的语法,因为它适用于CREATE EXTERNAL TABLE
。
值得注意的是,语法图中没有任何关于约束的内容。与CREATE TABLE
的{{3}}进行比较可能具有指导意义 - 没有计算列,没有显式约束,没有列集,没有外部版本的分区。
文档明确指出不允许DEFAULT
。我怀疑不允许任何约束,这就是你得到语法错误的原因。如果在显式约束看起来不是语法的一部分时允许使用内联约束,我会感到惊讶。
但是,column_definition
似乎允许内联PRIMARY KEY
约束,这就是我认为文档不完整的原因。
答案 1 :(得分:0)
我猜测问题是你还没有命名主键。您已指明主键所基于的字段(UserName
),但您尚未命名实际的主键。所以我不确定语法,但我认为你需要改变这样的行:
pk_UserName PRIMARY KEY [用户名]
你可能也不需要在行尾添加逗号。