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';

锁表

  1. 事务锁:使用事务来锁定表。在事务中,可以使用以下命令来锁定表:

    BEGIN TRANSACTION;
    SELECT * FROM your_table WITH (TABLOCKX, HOLDLOCK);
    -- 执行其他操作
    COMMIT;
    
  2. 行级锁:如果你只需要锁定表中的某些行,可以使用行级锁。使用以下命令来锁定指定行:

    BEGIN TRANSACTION;
    SELECT * FROM your_table WITH (ROWLOCK, UPDLOCK) WHERE condition;
    -- 执行其他操作
    COMMIT;
    
  3. 表级锁:使用以下命令来锁定整个表:

    BEGIN TRANSACTION;
    SELECT * FROM your_table WITH (TABLOCKX);
    -- 执行其他操作
    COMMIT;
    

修改表信息

  1. 首次添加字段备注:

     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'字段名';
    
  2. 更改字段备注

    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'字段名';  -- 字段名
    
posted @ 2024-08-28 00:03  NAfei  阅读(14)  评论(0)    收藏  举报