尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

SQL Server (SMSS) 表与列增删查改基础

SQL Server (SMSS) 表与列增删查改基础
📅 发布时间:2026/7/13 2:09:09

1. 前言

SQL Server Management Studio (SMSS) 是管理和操作 SQL Server 数据库的官方图形化工具。对于数据库开发和管理人员而言,掌握在 SMSS 中对表和列进行增删查改(CRUD)的基础操作,以及如何在 C# 应用程序(特别是低版本 .NET 环境)中连接并操作 SQL Server 数据库,是一项核心技能。本文将详细介绍这两部分内容,旨在为初学者和需要回顾的开发者提供清晰的指引。

2. SMSS 中对表的基础操作

在 SMSS 中,大部分操作可以通过图形界面完成,但了解其背后的 SQL 语句同样重要。

2.1 创建表 (Create)

在“对象资源管理器”中,右键点击目标数据库下的“表”文件夹,选择“新建表”。在弹出的设计器中,可以定义列名、数据类型、是否允许 NULL 值等。完成后点击“保存”按钮(或按 Ctrl+S),输入表名即可。

对应的 SQL 语句如下:

CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY IDENTITY(1,1), FirstName NVARCHAR(50) NOT NULL, LastName NVARCHAR(50) NOT NULL, BirthDate DATE, DepartmentID INT, HireDate DATETIME DEFAULT GETDATE() );

2.2 查询表结构与数据 (Read)

查看表结构:右键点击表名,选择“设计”,即可查看和修改列定义。

查看表数据:右键点击表名,选择“选择前1000行”。

对应的 SQL 查询语句:

-- 查询所有列 SELECT * FROM Employees; -- 查询特定列 SELECT EmployeeID, FirstName, LastName FROM Employees; -- 带条件查询 SELECT * FROM Employees WHERE DepartmentID = 3;

2.3 修改表结构 (Alter)

添加列:在设计视图中,在最后一行下方直接添加新列定义并保存。

ALTER TABLE Employees ADD Email NVARCHAR(100);

修改列:在设计视图中直接修改列的数据类型或属性(注意:某些修改可能导致数据丢失)。

ALTER TABLE Employees ALTER COLUMN FirstName NVARCHAR(100);

删除列:在设计视图中,右键点击要删除的列,选择“删除列”。

ALTER TABLE Employees DROP COLUMN Email;

2.4 删除表 (Delete)

右键点击表名,选择“删除”。在删除对话框中,可以查看依赖关系并确认删除。

DROP TABLE Employees;

警告:此操作将永久删除表及其所有数据,请谨慎操作。

3. SMSS 中对表中数据的增删查改

除了表结构,对表中数据的操作更为频繁。

3.1 插入数据 (Insert)

INSERT INTO Employees (FirstName, LastName, DepartmentID) VALUES ('张', '三', 1), ('李', '四', 2);

3.2 更新数据 (Update)

UPDATE Employees SET DepartmentID = 5, HireDate = GETDATE() WHERE EmployeeID = 10;

注意:务必使用 WHERE 子句限定要更新的行,否则将更新整个表。

3.3 删除数据 (Delete)

DELETE FROM Employees WHERE EmployeeID = 15;

注意:同样要谨慎使用 WHERE 子句。如果想清空整个表但保留结构,可以使用TRUNCATE TABLE Employees;,速度更快且不记录日志。

4. 在低版本 C# 中操作 SQL Server 数据库

对于 .NET Framework 2.0/3.5 等低版本环境,我们使用 ADO.NET 的核心类库进行数据库操作。主要步骤为:连接、执行命令、处理结果、关闭连接。

4.1 环境准备与引用

确保项目中已引用System.Data和System.Data.SqlClient命名空间。

using System.Data; using System.Data.SqlClient;

4.2 连接数据库

使用SqlConnection对象,连接字符串通常包含服务器地址、数据库名、认证方式等信息。

string connectionString = "Server=localhost;Database=MyDB;User Id=sa;Password=yourpassword;"; // 或者使用Windows身份验证:"Server=localhost;Database=MyDB;Integrated Security=True;" using (SqlConnection connection = new SqlConnection(connectionString)) { try { connection.Open(); Console.WriteLine("连接成功!"); // ... 后续操作 } catch (SqlException ex) { Console.WriteLine("连接失败: " + ex.Message); } } // using 语句确保连接被关闭和释放

4.3 执行查询 (Read) 并读取数据

使用SqlCommand和SqlDataReader。

string sql = "SELECT EmployeeID, FirstName, LastName FROM Employees WHERE DepartmentID = @DeptID"; using (SqlCommand command = new SqlCommand(sql, connection)) { command.Parameters.AddWithValue("@DeptID", 3); // 参数化查询,防止SQL注入 using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32(0); // 按列索引 string firstName = reader.GetString(1); // 或者按列名:string lastName = reader["LastName"].ToString(); Console.WriteLine($"ID: {id}, Name: {firstName} {reader["LastName"]}"); } } }

4.4 执行非查询操作 (Insert, Update, Delete)

使用ExecuteNonQuery方法,它返回受影响的行数。

// 插入数据 string insertSql = @"INSERT INTO Employees (FirstName, LastName, DepartmentID) VALUES (@FirstName, @LastName, @DeptID)"; using (SqlCommand cmd = new SqlCommand(insertSql, connection)) { cmd.Parameters.AddWithValue("@FirstName", "王"); cmd.Parameters.AddWithValue("@LastName", "五"); cmd.Parameters.AddWithValue("@DeptID", 4); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine($"插入了 {rowsAffected} 行。"); } // 更新和删除操作类似,只需更改SQL语句和参数

4.5 使用 DataSet 和 SqlDataAdapter (离线操作)

低版本中常用DataSet在内存中缓存数据,便于离线操作后批量更新回数据库。

string adapterSql = "SELECT * FROM Employees;"; SqlDataAdapter adapter = new SqlDataAdapter(adapterSql, connection); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); // 自动生成增删改命令 DataSet ds = new DataSet(); adapter.Fill(ds, "Employees"); // 将数据填充到DataSet的“Employees”表中 // 在内存中对 ds.Tables["Employees"] 进行修改(增删改行) // 将修改更新回数据库 adapter.Update(ds, "Employees");

5. 注意事项与最佳实践

  • 使用参数化查询:如上例所示,永远不要拼接SQL字符串,以防止SQL注入攻击。
  • 管理连接资源:使用using语句确保SqlConnection,SqlCommand,SqlDataReader被及时关闭和释放。
  • 异常处理:使用try-catch块捕获SqlException,并给出友好的错误提示。
  • 连接字符串配置:应将连接字符串存储在配置文件(如App.config或Web.config)中,而不是硬编码在程序里。
  • SMSS 操作备份:在生产环境执行删除表或列、更新大量数据等危险操作前,务必先备份数据或在一个安全的环境测试。

6. 总结

本文介绍了在 SMSS 中对数据库表和列进行增删查改的图形化与SQL语句操作,并详细说明了如何在C# (.NET Framework) 中使用 ADO.NET 的核心类来连接 SQL Server 并执行数据操作。掌握这些基础是进行更高级数据库编程和管理的基石。建议读者在理解的基础上,多动手实践,以加深印象。下面给出思维导图自行阅读

相关新闻

  • SSH 密钥管理与 ssh-agent 配置:解决多密钥与免密登录的 5 个核心场景
  • 鸿蒙ArkUI实战:让优先级和到期时间成为可读的视觉标签
  • 从零开始:大气层整合包系统如何让Switch破解变得简单又安全

最新新闻

  • 扩散模型与强化学习结合:生成可控3D胸部CT的关键技术与医学应用
  • 2026年7月六驱消防洒水车/六驱越野客车工厂行业评估_湖北神宇专用汽车有限公司 - 行业平台推荐
  • ZFX山海证券:“比特币回撤考验多仓位”
  • ROS服务与参数:机器人系统确定性交互与状态管理核心机制
  • Git核心原理详解
  • PyCharm Professional 2024.1 远程开发:5个关键配置项详解与同步策略选择

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号