Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में किसी तालिका के लिए हैश या चेकसम की गणना करें

आप CHECKSUM_AGG का उपयोग कर सकते हैं . यह केवल एक तर्क लेता है, इसलिए आप CHECKSUM_AGG(CHECKSUM(*)) कर सकते हैं - लेकिन यह आपके XML डेटाटाइप के लिए काम नहीं करता है, इसलिए आपको डायनेमिक SQL का सहारा लेना होगा।

आप INFORMATION_SCHEMA.COLUMNS . से गतिशील रूप से कॉलम सूची उत्पन्न कर सकते हैं और फिर एक टेम्पलेट में int डालें:

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. शीर्ष X संपादित करने के लिए मान कैसे बदलें और SQL सर्वर प्रबंधन स्टूडियो (SSMS) में शीर्ष X पंक्तियों का चयन करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 20

  2. SQL सर्वर ब्लॉकिंग क्वेरी

  3. SQL सर्वर में LEFT () बनाम SET TEXTSIZE:क्या अंतर है?

  4. SQL सर्वर में एक दृश्य से SCHEMABINDING निकालें

  5. क्रिएट व्यू बैच में एकमात्र स्टेटमेंट होना चाहिए