在SQL Server Express中创建表
问题描述:
我正在尝试为本地程序管理和安装系统设置SQL数据库。我想我已经创建了一个基本的可用模式,但我不确定如何将它转换为CREATE TABLE命令。有人可以帮我翻译和/或指向我的资源吗?在SQL Server Express中创建表
模式:
关于SQL语法Programs(
progID[key] (integer/index field?),
name (text),
desc (text),
iconFile (path to file),
installScript (path to file))
答
使用以下语法:
create table programs (
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
的primary key
套progid
列是表的索引列。 identity(1,1)
子句将progid
设置为自动递增字段,从1开始,每次递增1。因此,下面的SQL进入相应的行放入programs
:
insert into (name, description, iconfile, installscript)
values ('Name1', 'Test test', 'C:\file\path', 'C:\script\path')
insert into (name, description, iconfile, installscript)
values ('Name2', 'Test 123', 'C:\file\path1', 'C:\script\path2')
------------------------------------------------------------------
progid name description iconfile installscript
------------------------------------------------------------------
1 Name1 Test test C:\file\path C:\script\path
2 Name2 Test 123 C:\file\path1 C:\script\path2
通知,另外,我用nvarchar
代替varchar
。这是因为nvarchar
使用Unicode字符集,而varchar
使用ASCII字符集。推荐使用nvarchar
,因为ASCII字符在Unicode中不占用额外空间,但Unicode允许国际化并遮盖字符。
答
的问题应在Stack Overflow被引导过来。
这就是说,如果你有SQL Studio Management Express(grab it from here),当你创建你的表结构,但在保存之前,你可以点击“Generate Script”图标(它有一个带有磁盘的滚动条),它会告诉你它即将执行的代码。
它回来'错误156:关键字'desc'附近的语法不正确'。 – RCIX 2009-08-28 04:31:58
更改为“说明”。 'desc'是SQL中的一个保留关键字,如下所示:'select * from program order by progid desc',它将选择'programs'中的所有行,并按照'progid'的值以'desc'ending的顺序排序。 – Eric 2009-08-28 04:34:55
或者如果你真的想用“desc”而不是“description”,你可以用方括号括起来,即[desc] nvarchar(500)。但是,如果您完全可以避免使用保留关键字,那么通常情况会更轻松 – Gavin 2009-08-28 04:45:18