Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tính Hash hoặc Checksum cho một bảng trong SQL Server

Bạn có thể sử dụng CHECKSUM_AGG . Nó chỉ cần một đối số duy nhất, vì vậy bạn có thể thực hiện CHECKSUM_AGG(CHECKSUM(*)) - nhưng điều này không hoạt động với kiểu dữ liệu XML của bạn, vì vậy bạn sẽ phải sử dụng SQL động.

Bạn có thể tạo động danh sách cột từ INFORMATION_SCHEMA.COLUMNS và sau đó chèn int vào một mẫu:

DECLARE @schema_name NVARCHAR(MAX) = 'mySchemaName';
DECLARE @table_name NVARCHAR(MAX) = 'myTableName';
DECLARE @column_list NVARCHAR(MAX);

SELECT @column_list = COALESCE(@column_list + ', ', '')
        + /* Put your casting here from XML, text, etc columns */ QUOTENAME(COLUMN_NAME)
FROM    INFORMATION_SCHEMA.COLUMNS
WHERE   TABLE_NAME = @table_name
    AND TABLE_SCHEMA = @schema_name

DECLARE @template AS varchar(MAX)
SET @template = 'SELECT CHECKSUM_AGG(CHECKSUM({@column_list})) FROM {@schema_name}.{@table_name}'

DECLARE @sql AS varchar(MAX)
SET @sql = REPLACE(REPLACE(REPLACE(@template,
    '{@column_list}', @column_list),
    '{@schema_name}', @schema_name),
    '{@table_name}', @table_name)

EXEC ( @sql )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểu dữ liệu văn bản của SQL Server Maxlength =65,535?

  2. làm thế nào để biết có bao nhiêu hàng sẽ bị ảnh hưởng trước khi chạy một truy vấn trong microsoft sql server 2008

  3. Tạo một biến tĩnh toàn cục trong SQL Server?

  4. Kết nối với Cơ sở dữ liệu MSSQL bằng Flask-SQLAlchemy

  5. Kiểm tra xem bảng tạm thời có tồn tại hay không và xóa nếu bảng đó tồn tại trước khi tạo bảng tạm thời