2009-08-28 119 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」圖標(它有一個帶有磁盤的滾動條),它會告訴你它即將執行的代碼。