扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我们使用SQL Server的时候经常需要创建表,那么如何操作呢?下面我给大家分享一下。
创新互联建站服务项目包括平定网站建设、平定网站制作、平定网页制作以及平定网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,平定网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到平定省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
工具/材料
SQL Server Managment
首先我们打开SQL Server Managment管理软件,选择一个数据库,如下图所示
接下来右键单击表,选择新建下面的表选项,如下图所示
然后设置一下表中的字段,如下图所示
最后按Ctrl+S进行表的保存,给表起一个名字即可,如下图所示
SQL Server下建立数据库、建表的方法:
1、首先打开SQL Server Management Studio,会看到如下的界面:
点开数据库会出现
2、右键单击数据库,点击新建数据库,会出现以下界面:
3、在数据库名称栏中输入需要的名称,如xx然后点击确定即可。之后就可以在左边的列表中找到新建的数据库了如图:
这样,一个名字为xx的数据库就建好了。
4、然后可以将新建好的数据库展开。然后右键单击里面的表找到新建数据库,会出现以下界面:
5、然后可以在列中输入需要的名称(用英文形式),如输入的年龄,性别,地址,电话,身份证,民族(name address phone ID nation一般为nvardhar类型,age 一般为int类型)如图:
6、然后点保存,它会提示输入表的名称(一般为英文复数形式),然后点确定,就可以在左边找到我们新建的表了,比如新建的表的名称为个人基本信息PersonalInformations.
这样一张表就建好了。
7、表建好之后就可以进行添加内容了。右键单击表,选择里面的编辑前二十行,出现一下界面:
在里面输入需要的值就可以。
方法/步骤
打开SQL Server,在数据库处,右键数据库,点击新建数据库
请点击输入图片描述
然后,命名为LX,点击确定,创建数据库,如图所示
请点击输入图片描述
创建完,没有看到新建数据库的,在数据库那右键,刷新。如图所示就出来了
请点击输入图片描述
接着,找到LX数据库下的表,右键,新建表,如图所示
请点击输入图片描述
比如建立一个简单的部门表,简单部门表包含(部门编号、部门名),SQL Server 是可以用中文做列名的,但是为了能够被他人看懂,我们一般用英文,如图所示,DepertNo,DepertName,我喜欢在列名前加一个fld_,个人养成的一种习惯,看自己的习惯吧。因为我们有时候转换成英文,可能会与SQL的某些关键字起冲突,因此我加了个fld_。此外讲一下varchar为类型,10为长度,2个长度为1个汉字。
请点击输入图片描述
表设置主键,每个表只能有一个主键,右键表的最左侧,点击设置主键,最右边为空自动去勾,主键是不能为空的。一般部门号不会为空,部门名也是不会为空,所以也去掉勾,不允许为null。
请点击输入图片描述
输入好列后,右键标题,然后点击保存Table_1,如图所示,表名前我习惯加TBL_
请点击输入图片描述
-- ================================
-- 创建和使用自定义表类型
-- ================================
USE master
GO
-- ================================
-- 创建测试数据库
-- ================================
CREATE DATABASE demo
GO
-- ================================
-- 创建一个表
-- ================================
USE demo
GO
CREATE TABLE Customers
(
Id int NOT NULL,
Name char(10) NULL,
PRIMARY KEY (Id)
)
GO
USE demo
GO
-- ================================
-- 创建自定义表类型
-- ================================
CREATE TYPE dbo.CustomerTable AS TABLE
(
Id int NOT NULL,
Name char(10) NULL,
PRIMARY KEY (Id)
)
GO
-- =================================
-- 直接使用自定义表类型
-- =================================
DECLARE @c CustomerTable
INSERT INTO @c VALUES(1,'Xizhang')
SELECT * FROM @c
-- =================================
-- 在存储过程中使用自定义表类型
-- =================================
CREATE PROC GetCustomers
(@c CustomerTable READONLY)
AS
INSERT Customers SELECT * FROM @c --将传过来的参数(其实是一个表)的数据插入到Customers表里面去
-- =================================
-- 调用该存储过程,一次性插入4行数据
-- =================================
DECLARE @temp CustomerTable
INSERT INTO @temp VALUES(7,'Xizhang')
INSERT INTO @temp VALUES(2,'Xizhang')
INSERT INTO @temp VALUES(3,'Xizhang')
INSERT INTO @temp VALUES(4,'Xizhang')
EXEC GetCustomers @c=@temp
SELECT * FROM Customers
-- =================================
-- 清理数据库
-- =================================
USE master
GO
DROP DATABASE demo
GO
看起来不错对吧,但是你应该马上想到一个问题,如果说这个存储过程要在客户端代码中调用,那么该怎么提供这个参数值呢?
using System.Data.SqlClient;
using System.Data;
class Program
{
static void Main(string[] args)
{
DataTable tb = GetData();
using (SqlConnection conn = new SqlConnection("server=sql2008;database=demo;integrated security=true"))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "GetCustomers";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@c", SqlDbType.Structured);//这个类型很关键
param.Value = tb;
cmd.Parameters.Add(param);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
Console.WriteLine("完成操作");
Console.Read();
}
private static DataTable GetData()
{
DataTable tb = new DataTable();
tb.Columns.Add("Id",typeof(int));
tb.Columns.Add("Name", typeof(string));
//添加100个客户资料
for (int i = 0; i 100; i++)
{
DataRow row = tb.NewRow();
row[0] = i;
row[1] = "Name " + i.ToString();
tb.Rows.Add(row);
}
return tb;
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流