2013-10-06 182 views
-1

我想創建一個包含一對錶的數據庫。我正在使用SSMS,通過右鍵單擊創建完成上述任務非常簡單,但我想使用查詢/命令行(不知道如何對其進行說明)。SQL在數據庫ssms中創建表

創建數據庫和表

CREATE DATABASE test_employees; 

    CREATE TABLE dbo.EmployeesBasicInfo 
    (
     MyKeyField VarChar(8) PRIMARY KEY, 
     FirstName VarChar(30) NOT NULL, 
     LastName VarChar(50) NOT NULL, 
     DateStarted DateTime NOT NULL, 
     Age Int NOT NULL, 
     ModifiedDate DateTime NULL 
    ); 

但我不知道那裏的表去或如何移動/鏈接到數據庫test_employees。

另外,如果您在回答我的問題時有雄心,那麼下一步就是自動生成所有字段的數據。您可以提供的任何鏈接都會有所幫助。而且,如果我所做的任何事情都不是最佳實踐,請讓我知道 - 我只是進入SQL。

+0

讓事情變得更加困難並不是我所說的最佳做法。關於,自動生成數據,你的意思是什麼? –

+0

其他不好的做法是存儲一個人的年齡。它隨着時間而變化。 –

+0

哈哈,我明白你的意思是讓事情變得更加困難。我發現這是學習的最佳方式。 – FalacyNine

回答

3

你創建你需要的數據庫後

Use test_employees 
Go 

這爲隨後的語句當前工作的數據庫。

另外,您可以用數據庫名

Create Table test_employees.dbo.EmployeesBasicInfo (
    MyKeyField varchar(8) primary key, 
    FirstName varchar(30) not null, 
    LastName varchar(50) not null, 
    DateStarted DateTime not null, 
    Age int not null, 
    ModifiedDate datetime null 
); 

你可能在你的默認數據庫中創建這個表,這可能是master限定您創建表。

也適用於任何最新版本的SQL Server,請考慮使用datetime2而不是datetime(或date如果您不需要時間組件)。在各方面都更好。

+0

太棒了!我發誓答案不容易找到。我搜索了一段時間,找不到它。 – FalacyNine

+0

在創建數據庫和創建表之間放置「go」命令可能會很好(可能在USE之前最好)。 –

+0

@RussellSchutte我已經把它放進去了,我知道很多自動生成的腳本都這樣做,但我從來沒有弄清楚爲什麼。 – Laurence

1

下面是一些代碼來創建表1,然後你可以添加一些測試數據爲它.......

練習創建一個表:

Create Table dbo.BasicInfo (
    MyKeyField INT primary key IDENTITY(1,1), 
    FirstName varchar(30) not null, 
    LastName varchar(50) not null, 
    DateStarted DateTime not null, 
    Age int not null, 
    ModifiedDate datetime null 
) 
GO 

TO ADD實踐DATA:

DECLARE @Value INT = 1 

WHILE @Value <= 100 
    BEGIN 
     INSERT INTO dbo.BasicInfo (FirstName, LastName, DateStarted, Age, ModifiedDate) 
     VALUES   ('First_Name_' + CAST(@Value AS VARCHAR), 'Last_Name_'+ CAST(@Value AS VARCHAR), DATEADD(DAY, -CONVERT(INT, (5000+1)*RAND()), GETDATE()), 
        18 + CONVERT(INT, (30-10+1)*RAND()), DATEADD(DAY, 10 + (30-10)*RAND() ,DATEADD(DAY, -CONVERT(INT, (5000+1)*RAND()), GETDATE()))) 
     SET @Value = @Value + 1 
    END 

,如果你想在你的表中添加更多的則100行只需更換要與100在此代碼

添加到您的表中的行數