問題タブ [tsqlt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
277 参照

sql - フロー制御ロジックを結合または使用して、レポートするテーブルを決定する

テーブルを変更できないサードパーティアプリを使用しています。月末にデータをダンプし、それらのデータにその月の最終日の日付でフラグを立てる追加の datetime 列「AsOfDate」を使用して、カスタム マッチング「Monthly」テーブルを作成しました。

単一のストアド プロシージャを作成し (アプリケーションは、すべてのレポートのソースとしてビューまたはストアド プロシージャを必要とするように設計されています)、現在のデータ テーブルを使用するパラメーターを使用できるようにしたいと考えています (パラメーターは NULL または = Today's日付) または月末テーブルを使用して、月末の日付でフィルター処理します。このようにして、ユーザーが現在のデータまたは特定の月末期間のデータを使用できるレポートが 1 つあります。

あなたはどちらを好みますか (そしてその理由) 申し訳ありませんが、これは完全にコード化されていません

ソリューション #1 ユニオン クエリ

解決策 #2 If ステートメントを使用してテーブルを選択する

繰り返しますが、これは完全にコード化されておらず、データベースに依存していません (ただし、SQL Server 2005 です)。

編集:別のストアドプロシージャを使用したソリューション#2のバリエーション

0 投票する
2 に答える
137 参照

.net - データベースでデータを使用できない場合に SQL Server ストアド プロシージャをテストするためのツール。

データベースでデータが利用できないSQL Serverストアドプロシージャをテストするユーティリティまたはツールを知っていますか?そのツールは、ストアドプロシージャを読み取ってDBにデータを挿入する必要があります...

助言がありますか ?

ありがとう。

0 投票する
2 に答える
816 参照

sql - Red Gate SQL Test からの最初の tSQLt サンプル テストがシステムで失敗するのはなぜですか?

最近、 SSMS for SQL Server 2008 R2 を実行している仮想マシン (VMWare 8) にSQL Testプラグインをインストールしました。これはtSQLtのフロント エンドです。サーバーで CLR を有効にしました。tSQLt サンプル データベースをインストールしました。実行ボタンを押しました。すべてのサンプル テストに合格することを期待しています。私は、1 つを除いてすべてがパスすることを観察します。

[AcceleratorTests] というタイトルの最初のテスト。[2 つの粒子の場合、実験の準備ができているテスト] は失敗しました: 予想: <1> でしたが、<0> でした。

関連する SQL を読みましたが、すべて合格するはずです。私が知る限り、Red Gate が提供するコードは、サンプル データベース用に tSQLt が提供するコードと同じです。マシンには、SQL テスト ランナーとスクリプトの tSQLT セットという新しいレイヤーがいくつかあります。エラーがどこにあるかを見つけようとして、私はちょっと迷っています。最初に何を見ればよいかアドバイスはありますか?

ティア

0 投票する
4 に答える
3889 参照

tsqlt - tSQLt を使用してテストするときにトランザクションをロールバックする方法

最近、コードに rasierror を含むプロシージャを呼び出していました。レイザーエラーは try catch ブロックにありました。また、BEGIN TRAN は、raiserrr の後の同じ try catch ブロックにありました。Catch ブロックは、トランザクションでエラーが発生した場合にトランザクションを ROLLBACK するように設計されています。これを行う方法は、@@TRANCOUNT が 0 より大きいかどうかを確認することです。トランザクションが開始され、ロールバックする必要があることがわかっています。tSQLt でテストする場合、@@TRANCOUNT は常に >0 であるため、CATCH ブロックにヒットすると ROLLBACK が実行され、tSQLt は失敗します (tSQLt がトランザクションで実行されているため)。エラーが発生し、CATCH ブロックが実行されると、tSQLt は常にテストに失敗します。レイザーエラーの正しい処理をテストする方法がありません。トランザクションをロールバックする可能性のあるテスト ケースをどのように作成しますか?

0 投票する
2 に答える
959 参照

sql-server - 計算列でのtSQLtを使用した単体テスト

最近、(永続化された)計算列を含むテーブルを呼び出すプロシージャで(Red Gate SQL Testを介して)いくつかのtSQLtデータベース単体テストを作成していますが、FakeTable SPを使用すると、計算列にデータが入力されていないことがわかります(それらはnullとして評価されます)。計算された列はテストの鍵となるため、テストの列を無視することはできず、ロジックを複製したくありません。

tSQLt.AssertEqualsTable SPを使用して結果を評価しているので、両方の列の値が同じであることを確認したいと思います。

実際には、FakeTableを使用せずに、テストの最後に(部分的な)ロールバックトランザクションステートメントを使用してこれを回避しました(http://sqlity.net/en/585/how-のブログ投稿による) to-rollback-in-procedures /)またはテスト値を明示的に削除します。

このテストをコーディングするためのより良い方法があるはずだと確信しており、どんな提案も歓迎します。

0 投票する
2 に答える
3946 参照

sql-server - tSQLt の SQLCop テスト

SQLTestSQL 単体テスト用の Redgate ツールは、 SQLCopからテストを追加する機能を提供するようになりましたが、Redgate ツールには、それらのテストのビルド済みのいくつかしか付属していません。

テストは単なるストアド プロシージャであるため、誰かがこれらのテストをさらに実装していると確信しています。

共有してもよろしいですか?誰?

0 投票する
3 に答える
2335 参照

sql - MAX intを取得するが、特定のintを除外する方法は?

特定の列から最大整数を取得したいのですが、存在する場合は常に最大になる値を除きます。データは次のようになります。

上記では、MAXスコアを10未満にしたいと思います。この場合、MAX(スコア)は10に戻るため、機能しません。結果は次のようになります。

助言がありますか?

0 投票する
4 に答える
1372 参照

sql - シノニム テーブルを FakeTable しようとすると tSQLt が失敗する

私は tSQLt を使用しています (Red Gate の SQL テスト バージョン 1.0.0.455 を使用)。tSQLt はデータベース A にインストールされています。データベース A のシノニムを使用して、同じ SQL サーバー インスタンスのデータベース B のテーブルで tSQLt.FakeTable を実行しようとしています。

コード:

ALTER PROCEDURE [ErrorType109NonTankHasSizeOrVolume].[テスト AliasTest] AS

BEGIN
Exec tSQLt.FakeTable 'dbo.Bygning';

dbo.Bygning (ObjStatus) 値 (1) に挿入します。

EXEC tSQLt.AssertEquals 1, 1
END;

dbo.Bygningは、データベース B のテーブルを参照するデータベース A のシノニムであり、データベースのObjStatus列です。dbo.Bygning

エラーメッセージ:

tSQLt.FakeTable シノニム テーブルへの方法はありますか?

明確化: エラー メッセージは、テストの実行時に表示されます。

0 投票する
1 に答える
504 参照

sql - インストールした tSQLt (データベース テスト フレームワーク) のバージョンは?

データベースにインストールされているtSQLtのバージョン番号を確認する方法はありますか?

tSQLt は、T-SQL ではなく、SQL サーバーのテスト フレームワークであることに注意してください。(関係のないものと重複して閉じることに投票しないでください。)

0 投票する
3 に答える
1554 参照

sql-server - tSQLt TRUSTWORTHY および CLR 要件

tSQLtテスト フレームワークでは、データベースに対してTRUSTWORTHY ON を設定し、サーバーに対して SQL CLR を有効にする必要があります。

なぜこれらが必要なのですか?CLR オブジェクトなしで同じ/類似の機能を実現することは可能ですか?