SQL
SQL SEVER 清理Log
EXEC sp_helpfile;
DBCC SHRINKFILE ([日志文件逻辑名称], 1); -- 将其缩减到 1MB,具体大小可以根据需要调整
清空数据库表数据
USE [DataBase]; -- 切换到你的数据库
DECLARE @TableName NVARCHAR(MAX);
DECLARE @ResetSQL NVARCHAR(MAX);
-- 禁用外键检查
EXEC sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';
-- 获取所有表名
DECLARE table_cursor CURSOR FOR
SELECT name
FROM sys.tables;
OPEN table_cursor;
FETCH NEXT FROM table_cursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 生成重置自增字段ID的SQL语句
SET @ResetSQL = 'DBCC CHECKIDENT (' + QUOTENAME(@TableName) + ', RESEED, 0)';
EXEC sp_executesql @ResetSQL;
-- 删除表中的数据
SET @ResetSQL = 'DELETE FROM ' + QUOTENAME(@TableName);
EXEC sp_executesql @ResetSQL;
FETCH NEXT FROM table_cursor INTO @TableName;
END;
CLOSE table_cursor;
DEALLOCATE table_cursor;
-- 启用外键检查
EXEC sp_MSforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL';
锁表
-
事务锁:使用事务来锁定表。在事务中,可以使用以下命令来锁定表:
BEGIN TRANSACTION; SELECT * FROM your_table WITH (TABLOCKX, HOLDLOCK); -- 执行其他操作 COMMIT;
-
行级锁:如果你只需要锁定表中的某些行,可以使用行级锁。使用以下命令来锁定指定行:
BEGIN TRANSACTION; SELECT * FROM your_table WITH (ROWLOCK, UPDLOCK) WHERE condition; -- 执行其他操作 COMMIT;
-
表级锁:使用以下命令来锁定整个表:
BEGIN TRANSACTION; SELECT * FROM your_table WITH (TABLOCKX); -- 执行其他操作 COMMIT;
修改表信息
-
首次添加字段备注:
exec sp_addextendedproperty @name = N'MS_Description', @value = N'字段备注内容', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'表名', @level2type = N'COLUMN', @level2name = N'字段名';
-
更改字段备注
exec sp_updateextendedproperty @name = N'MS_Description', @value = N'新的字段备注', @level0type = N'SCHEMA', @level0name = N'dbo', -- 模式名 @level1type = N'TABLE', @level1name = N'表名', -- 表名 @level2type = N'COLUMN', @level2name = N'字段名'; -- 字段名