2013-10-06 5 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 

К ADD ПРАКТИКА ДАННЫЕ:

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 в этом коде

Смежные вопросы