在数据库中创建一个表
问题描述:
我正在尝试在我的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]
)
感谢
答
这是一个有点投机,因为documentation似乎并不完整。特别是,它没有定义column_definition
的语法,因为它适用于CREATE EXTERNAL TABLE
。
从语法图中明显缺少的是关于约束的任何事情。 CREATE TABLE
与syntax的比较可能具有启发性 - 没有计算列,没有显式约束,没有列集,外部版本没有分区。
该文档是明确的,DEFAULT
是不允许的。我怀疑没有限制,这就是为什么你会得到一个语法错误。如果在显式约束不是语法的一部分时允许内联约束,我会感到惊讶。
但是,column_definition
似乎允许内联PRIMARY KEY
约束,这就是为什么我认为文档不完整。
答
我猜问题是你没有命名主键。您已经指出了主键基于哪个字段(UserName
),但您尚未命名实际的主键。所以,我不知道语法的,但我认为你需要将行更改为类似这样:
pk_UserName PRIMARY KEY [用户名]
你可能也不需要在逗号队伍的尽头。
我无法弄清楚你的问题究竟是什么。 –
该查询不工作,我不知道为什么,错误是围绕主键,身份证也喜欢知道什么'WITH ( LOCATION ='/文件夹/文件', DATA_SOURCE = [数据源1], FILE_FORMAT = [FileFormat1] )' –