In this episode we will be discussing a key concept of SQL and database administration, we will be inserting a new record into a table.
We will be using the AdventureWorks database as usual, here we will be inserting a record into the HumanResourcesDepartment table.
We first need to see which columns are available in this table. Inside the HumanResourcesDepartment table there are four columns, namely the
ModifiedDate columns respectively.
These are the columns we will be inserting records, we will be performing these tasks using a SQL statement.
In most cases, the primary key (PK) column does not require an explicit value to be entered. This value is automatically generated from the system.
To determine whether we need to add a value to a specific column or not, follow these steps in SMSS.
Right-click on the table-name and click on
design. When we click on
design we will see all the column names, their data types and whether they allow NULL values or not.
Below we will see a
Column Properties window. When we click on our different columns above, we see the column properties below change.
We click on the DepartmentID column; next in the
Column Properties window scroll down until we see Identity Specification. We expand this by clicking on the arrow on the left-side.
These values indicate that this column is in fact an identity column.
Identity Increment means the identity column increases by 1 every-time a new value is entered and the
Identity Seed means the starting value was 1.
In short, every-time we add a new record; we will automatically generate a new value, which will be one higher than the previous highest value.
We could check the other columns to determine if they are Identity columns, however they are not number values and additionally they do not increment, therefore it is safe to assume that DepartmentID column is the only column that is identity in this table.
However we should double-check them to make absolutely certain.
The structure of an insert statement is a bit different from what we have seen thus far.
insert into [Table-Name] (column-name/s) values (values to insert into sql)
For example, to insert a new record in the HumanResourcesDepartment table we can write it as follows.
insert into [HumanResources].[Department] (Name, GroupName, ModifiedDate) values ('Learning', 'Growth and Education', getdate())
Notice how the values in parenthesis, (column-names/s) and (values to insert into sql) need to correspond.
Name corresponds to 'Learning';
GroupName corresponds to 'Growth and Education' and
ModifiedDate corresponds to getdate().
Getdate is a special
built-in function provided by SMSS and allows us to get the current date.
Let’s see this in action within SMSS.
Once we execute this SQL query we get the message
1 row affected followed by the time that the query executed.
We can perform a SELECT statement to confirm our record has been inserted into the HumanResourcesDepartment table.
There you have it, this is how we insert a new record into a table.
Learn continually - there's always "one more thing" to learn.