SQL server 常用命令总结

一、常用命令:
查看表结构:
sp_columns '表名'  
查看SQL server 版本:
SELECT @@VERSION;   
 查看实例名称:
SELECT @@SERVERNAME AS 'Server Name' 
模糊查询表名:
SELECT name FROM sys.tables WHERE name LIKE '表名%';  
查看当前数据库连接情况:
SELECT * FROM sys.dm_exec_connections;
查看当前数据库会话信息:
SELECT * FROM sys.dm_exec_sessions;
查看数据库文件大小:
SELECT name AS FileName, size*8/1024 AS FileSizeKB
FROM sys.master_files
WHERE type = 0;
查看数据库日志文件大小:
SELECT name AS LogFileName, size*8/1024 AS LogFileSizeKB
FROM sys.master_files
WHERE type = 1;
检查数据库完整性:
DBCC CHECKDB('database_name');
查看当前活动的 SQL Server 错误日志:
EXEC xp_readerrorlog;
1、建库建表:
创建数据库:
CREATE DATABASE 数据库;
删除数据库:
DROP DATABASE 数据库;
创建表:
CREATE TABLE 表(
    column1 datatype,
    column2 datatype,
    ...
);
--删除表
DROP TABLE 表
2、增删改查:
插入数据:
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
查询数据:
SELECT column1, column2, ... FROM table_name WHERE condition;
更新数据:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
删除数据:
DELETE FROM table_name WHERE condition;
3、索引字段:
创建索引
要在表中创建索引,使用 CREATE INDEX 语句。
CREATE INDEX index_name
ON table_name (column1, column2, ...);
其中,index_name 是索引的名称,table_name 是要创建索引的表名,column1, column2, ... 是要包含在索引中的列名。
例如,为 employees 表中的 last_name 列创建索引:
CREATE INDEX idx_last_name
ON employees (last_name);
如果要创建复合索引(多列索引),例如结合 last_name 和 first_name:
CREATE INDEX idx_last_name_first_name
ON employees (last_name, first_name);

删除索引
要删除索引,使用 DROP INDEX 语句。
DROP INDEX index_name
ON table_name;
例如,删除 employees 表中的 idx_last_name 索引:
DROP INDEX idx_last_name
ON employees;

增加字段的长度:
要增加字段的长度,你需要使用 ALTER TABLE 和 ALTER COLUMN,并指定新的字段长度。
ALTER TABLE table_name
ALTER COLUMN column_name datatype(new_length);
例如,假设你要增加表 employees 中 first_name 字段的长度为 50:
ALTER TABLE employees
ALTER COLUMN first_name VARCHAR(50);

减少字段长度:
减少字段长度时,要确保新长度足够容纳原有数据,否则可能会导致截断数据。同样使用 ALTER TABLE 和 ALTER COLUMN,指定新的字段长度即可。
ALTER TABLE table_name
ALTER COLUMN column_name datatype(new_length);
例如,将 employees 表中 last_name 字段的长度减少为 30:
ALTER TABLE employees
ALTER COLUMN last_name VARCHAR(30);

删除字段:
要删除字段,使用 ALTER TABLE 和 DROP COLUMN 子句。
ALTER TABLE table_name
DROP COLUMN column_name;
例如,从 employees 表中删除 middle_name 字段:
ALTER TABLE employees
DROP COLUMN middle_name;

4、重启服务:
ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE;   --将数据库设置为离线状态(并立即回滚所有活动连接)
ALTER DATABASE 数据库名 SET ONLINE;                                                    --将其设置为在线状态

二、视图
#1 、创建视图的格式
GO
create view 表名
as
select                                        --执行SQL语句
GO
select  表名                               --查看视图
GO

三、存储过程:
GO
create proc 存储过程名称          --创建
as
select | update|delete| insert     --执行SQL语句,增删改查等
exec 存储过程名称                     --调用
GO

四、事务管理
select * from 表名    --查看表
BEGIN TRANSACTION; -- 开始事务,确保操作的原子性

update  表名  set 字段名 = 值 [where 条件表达式 ] --执行SQL语句,如update表更新

COMMIT TRANSACTION; -- 提交事务,保存更改
ROLLBACK TRANSACTION; --回滚
注意:COMMIT TRANSACTION;  和  ROLLBACK TRANSACTION;  只能执行一个,具体来说,你的操作应该是要么提交事务,要么回滚事务,而不是同时执行这两个操作。

五、备份与还原
备份数据库:
BACKUP DATABASE 数据库名
TO DISK = 'C:\Backup\Path\BackupFile.bak'
WITH FORMAT;

BACKUP DATABASE 语句用于创建数据库的完整备份。
TO DISK = 'C:\Backup\Path\BackupFile.bak' 指定备份文件的路径和名称。
WITH FORMAT 选项表示在备份之前要格式化备份介质,这将覆盖任何现有的备份集和介质。
这个过程只是将数据库的当前状态(包括表结构、数据、索引等)备份到指定的文件中,不会对数据库的结构进行任何更改。

还原数据库
RESTORE DATABASE 数据库名
FROM DISK = '路径\bak文件名'
WITH REPLACE, RECOVERY;

RESTORE DATABASE 语句用于从备份文件还原数据库。
FROM DISK = '路径\bak文件名' 指定要恢复的备份文件的路径和名称。
WITH REPLACE 选项允许替换现有数据库(如果存在同名的数据库)。
WITH RECOVERY 选项表示数据库恢复后将其置于可用状态,不再允许更多的事务日志应用。
这个过程会从备份文件中还原数据库的内容,包括表结构、数据、索引等,但并不会对这些结构进行任何更改。还原的目的是将数据库恢复到备份时的状态,以便继续使用或者恢复数据。
备份表:
-创建备份表:
SELECT * INTO 备份表名 FROM 原表名;
--这条语句将从 原 表中选择所有数据,并将这些数据插入到一个新创建的备份表中。

--删除原表:
DROP TABLE 原表名;
--这条语句删除原表。在执行这步之前,请确保备份数据已经成功创建。

--重命名备份表,将备份表变成原表
EXEC sp_rename '备份表名', '原表名';

这种表备份还原的方式不会改变表结构,只是简单地复制了原表的数据到备份表中,然后删除了原表,并将备份表重命名为原表的名称。在这个过程中,表结构(列名、数据类型等)不会被改变,简单来说只是在数据库中进行了数据的移动和重命名操作。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GHY我与春风皆过客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值