使用 BINARY_CHECKSUM 检测表的行中的更改 无 USE AdventureWorks2012;GOCREATE TABLE myTable (column1 int, column2 varchar(256));GOINSERT INTO myTable VALUES (1, 'test');GOSELECT BINARY_CHECKSUM(*) from myTable;GOUPDATE myTable set column2 = '
使用 BINARY_CHECKSUM 检测表的行中的更改USE AdventureWorks2012; GO CREATE TABLE myTable (column1 int, column2 varchar(256)); GO INSERT INTO myTable VALUES (1, 'test'); GO SELECT BINARY_CHECKSUM(*) from myTable; GO UPDATE myTable set column2 = 'TEST'; GO SELECT BINARY_CHECKSUM(*) from myTable; GO
使用方法如下: select id,binary_checksum(*) from tb1 select id binary_checksum(*) from tb2 你比较两个表的校验值即可,若校验值相同,则表示通过。 -------------------------------------------- 详细如下: select A.id from (select id,CA=binary_checksum(*) from tb1) A where A.CA not in (select B.CB from (select id,CB=binary_checksum(*) from tb2) B --------------- 发表于 2006-7-2 19:33 |只看该作者 当然,若你单纯想快速的检验表与表之间是否相同,就直接用sp_table_validation吧。 实际上它的核心也是使用了binary_checksum ----------------- Either returns rowcount or checksum information on a table or indexed view, or compares the provided rowcount or checksum information with the specified table or indexed view. This stored procedure is executed at the Publisher on the publication database and at the Subscriber on the subscription database. Not supported for Oracle Publishers. Syntax sp_table_validation [ @table = ] 'table' [ , [ @expected_rowcount = ] type_of_check_requested OUTPUT] [ , [ @expected_checksum = ] expected_checksum OUTPUT] [ , [ @rowcount_only = ] rowcount_only ] [ , [ @owner = ] 'owner' ] [ , [ @full_or_fast = ] full_or_fast ] [ , [ @shutdown_agent = ] shutdown_agent ] [ , [ @table_name = ] table_name ] [ , [ @column_list = ] 'column_list' ]
sp_table_validation 或者返回有关表或索引视图的行数或校验值信息,或者将提供的行数或校验值信息与指定的表或索引视图进行比较。此存储过程在发布服务器的发布数据库上执行。 语法 sp_table_validation [ @table = ] 'table' [ , [ @expected_rowcount = ] type_of_check_requested OUTPUT] [ , [ @expected_checksum = ] expected_checksum OUTPUT] [ , [ @rowcount_only = ] rowcount_only ] [ , [ @owner = ] 'owner' ] [ , [ @full_or_fast = ] full_or_fast ] [ , [ @shutdown_agent = ] shutdown_agent ] [ , [ @table_name = ] table_name ] [ , [ @column_list = ] 'column_list' ] 参数 [@table =] 'table' 是表名。table 的数据类型为 sysname,无默认值。 [@expected_rowcount =] expected_rowcount OUTPUT 指定是否返回表中的预期行数。expected_rowcount 的数据类型为 int,默认值为 NULL。如果为 NULL,则表示将实际的行数作为输出参数返回。如果提供了值,则将对照实际的行数检查该值以确定任何差异。 [@expected_checksum =] expected_checksum OUTPUT 指定是否返回表的预期校验值。expected_checksum 的数据类型为 numeric,默认值为 NULL。如果为 NULL,则表示将实际的校验值作为输出参数返回。如果提供了值,则将对照实际的校验值检查该值以确定任何差异。 [@rowcount_only =] type_of_check_requested 指定执行的校验值类型或行数。type_of_check_requested 的数据类型为 smallint,默认值为 1。如果为 0,则执行 SQL Server 7.0 兼容的校验值。如果为 1,则只执行行数检查。如果为 2,则执行行数和校验值。 [@owner =] 'owner' 是表所有者的名称。owner 的数据类型为 sysname,默认值为 NULL。 [@full_or_fast =] full_or_fast 是计算行数的方法。full_or_fast 的数据类型为 tinyint,默认值为 2,可以是下列值之一。 值 描述 0 用 COUNT(*) 进行完整计数。 1 从 sysindexes.rows 进行快速计数。在 sysindexes 中对行进行计数比在实表中计数快得多。但由于很少对 sysindexes 进行更新,所以行计数可能不准确。 2(默认值) 首先使用快速方法进行条件快速计数。如果快速方法显示出差异,则转而使用完整方法。如果 expected_rowcount 的值为 NULL,而且正在使用存储过程获取该值,则始终使用完整 COUNT(*)。 [@shutdown_agent =] shutdown_agent 如果分发代理程序正在执行 sp_table_validation,则指定分发代理程序是否在验证完成后立即关闭。shutdown_agent 的数据类型为 bit,默认值为 0。如果为 0,则复制代理程序不关闭。如果为 1,则将产生 20578 号错误,并通知复制代理程序关闭。 [@table_name =] table_name 是用于输出消息的视图的表名。table_name 的数据类型为 sysname,默认值为 @table。 [@column_list = ] 'column_list' 是用于 binary_checksum 函数的列的列表。column_list 的数据类型为 nvarchar(4000),默认值为 NULL。启用合并项目验证,以指定排除计算列和时间戳列的列的列表。 返回代码值 如果执行校验值验证并且预期的校验值与表中的校验值相等,sp_table_validation 将返回一条消息指出该表已通过校验值验证。否则,将返回一条消息指出表可能不同步,并报告预期的行数和实际行数之间的差异。 如果执行行数验证并且预期的行数与表中的行数相等,sp_table_validation 将返回一条消息指出该表已通过行数验证。否则,将返回一条消息指出表可能不同步,并报告预期的行数和实际行数之间的差异。 注释 sp_table_validation 用于所有类型的复制。 校验值在页的整个行映像上计算 32 位循环冗余检查 (CRC)。它不是有选择地检查列,并且不能在视图或表的垂直分区上操作。另外,校验值跳过 text 和 image 列的内容(根据设计)。 执行校验值检查时,两个服务器的表结构必须完全相同;也就是说,表中包含的列必须相同,且列的顺序、数据类型和长度以及 NULL/NOT NULL 条件都必须相同。例如,如果发布服务器使用 CREATE TABLE,然后使用 ALTER TABLE 添加列,但是发布服务器上应用的脚本是一个简单的 CREATE 表,则表结构不相同。如果不能确定两个表的结构是否相同,可以查看 syscolumns 并确定每个表中的偏移量是否相同。 如果使用了字符模式的 bcp(当发布中包含异类订阅服务器时会发生这种情况),则浮点值很可能产生校验值差异。这是由于在进行字符模式转换时,精度上存在不可避免的微小差异。 权限 只有 sysadmin 固定服务器角色成员或 db_owner 固定数据库角色成员才能执行 sp_table_validation。 请参见 sp_article_validation sp_publication_validation 系统存储过程

Innodbbufferpoolは、データをキャッシュしてページをインデックス作成することにより、ディスクI/Oを削減し、データベースのパフォーマンスを改善します。その作業原則には次のものが含まれます。1。データ読み取り:Bufferpoolのデータを読む。 2。データの書き込み:データを変更した後、bufferpoolに書き込み、定期的にディスクに更新します。 3.キャッシュ管理:LRUアルゴリズムを使用して、キャッシュページを管理します。 4.読みメカニズム:隣接するデータページを事前にロードします。 BufferPoolのサイジングと複数のインスタンスを使用することにより、データベースのパフォーマンスを最適化できます。

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

MySQLは、データストレージ、管理、分析に適した強力なオープンソースデータベース管理システムであるため、学習する価値があります。 1)MySQLは、SQLを使用してデータを操作するリレーショナルデータベースであり、構造化されたデータ管理に適しています。 2)SQL言語はMySQLと対話するための鍵であり、CRUD操作をサポートします。 3)MySQLの作業原則には、クライアント/サーバーアーキテクチャ、ストレージエンジン、クエリオプティマイザーが含まれます。 4)基本的な使用には、データベースとテーブルの作成が含まれ、高度な使用にはJoinを使用してテーブルの参加が含まれます。 5)一般的なエラーには、構文エラーと許可の問題が含まれ、デバッグスキルには、構文のチェックと説明コマンドの使用が含まれます。 6)パフォーマンスの最適化には、インデックスの使用、SQLステートメントの最適化、およびデータベースの定期的なメンテナンスが含まれます。

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
