2009-08-28 85 views
1

我正在尝试为本地程序管理和安装系统设置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)) 

回答

3

使用以下语法:

create table programs (
    progid int primary key identity(1,1), 
    name nvarchar(255), 
    description nvarchar(500), 
    iconFile nvarchar(255), 
    installScript nvarchar(255) 
) 

primary keyprogid列是表的索引列。 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允许国际化并遮盖字符。

+0

它回来'错误156:关键字'desc'附近的语法不正确'。 – RCIX 2009-08-28 04:31:58

+0

更改为“说明”。 'desc'是SQL中的一个保留关键字,如下所示:'select * from program order by progid desc',它将选择'programs'中的所有行,并按照'progid'的值以'desc'ending的顺序排序。 – Eric 2009-08-28 04:34:55

+1

或者如果你真的想用“desc”而不是“description”,你可以用方括号括起来,即[desc] nvarchar(500)。但是,如果您完全可以避免使用保留关键字,那么通常情况会更轻松 – Gavin 2009-08-28 04:45:18

1

的问题应在Stack Overflow被引导过来。

这就是说,如果你有SQL Studio Management Express(grab it from here),当你创建你的表结构,但在保存之前,你可以点击“Generate Script”图标(它有一个带有磁盘的滚动条),它会告诉你它即将执行的代码。