2016-12-24 3 views
-3

ストアドプロシージャを作成するためのトリックについてお聞きしたいと思います。ストアドプロシージャを作成する簡単な方法

プロシージャを作成しようとすると、@符号の先頭にフィールドを書き込む必要があります。これを行う簡単な方法はありません。

この

CREATE PROCEDURE [dbo].[Insert_Vehicle_Procedure] 
    (@VehiclePlateNo varchar(max), 
    @Variety varchar(max) 
    ) 
AS 
    SET NOCOUNT OFF 

    INSERT INTO [dbo].[Vehicles] ([VehiclePlateNo], [Variety]) 
    VALUES (@VehiclePlateNo, @Variety) 

は時々彼らは本当にいらいらすることができ書き込むための領域の何百もあると同じように:)

+0

このストアドプロシージャはかなり簡潔ですが、正確にここで「最適化」したいのは何ですか?私はあなたの変数/エンティティ/ etcを作ることができると思います。名前* short *がありますが、少数の文字の後にこれらの簡潔な名前が効果的に記述するのをやめてくれるので、それではリターンが減少することはすぐにわかります。コードを入力したくない場合は、コード生成ツールの中には探しているものがあります。自家製のものさえも。テーブル構造を照会して、そこからプロシージャー・テキストを出すことができます。 – David

+1

長さのないBTW 'varchar'は' varchar(1) 'と同じです。 SSMSツールパックには、テーブルの簡単な手順を作成するヘルパーがあります。 –

+0

私は@MartinSmithを知っている私は単なる例であると書いた。 – Sososo

答えて

0

理由だけではなく、SQLスクリプトを記述しないで、自分からストアドプロシージャパラメータデータのスクリプトブロックを発することsystablesおよびsyscolumnsシステムテーブルを照会します。

+0

これをもう少し明確に説明できますか?私はこれについての情報が不足していると思います。あなたがこの点で助けることができるなら、私はデータベースの知識を向上させたいと思います。 – Sososo

+0

テーブルのすべての列名とデータ型は、SQL Serverのsyscolumnsテーブルに保持されます。 syscolumnsテーブルからデータを選択したクエリを作成した場合(つまり、ターゲットテーブル内のすべてのフィールドの行を選択した場合)、Select文を簡単に取得して、「@VehiclePlateNo varchar(max)」のようなテキスト行をシステックスとシステムのデータ。 – PhillipH

関連する問題