2017-06-27 10 views
-2

データ型がvarchar(100)の5つの列A、B、C、DおよびEを持つテーブルを作成します。テーブル名はMy_tableになります 1パラメータを受け入れるUpdate_Recordsという名前のストアドプロシージャを作成します。if elseを使用してストアドプロシージャを作成する

@col_name varchar(100) 

この手順に列名を渡すと、その列が既に表に存在するかどうかが確認されます。存在する場合は、 'Column already exists'と表示されます。存在しない場合は、My_tableを変更してその列を追加します。出力は次のようになります。 'テーブルが変更された'

例えば、私は

Exec Update_Records ‘B’ 

としてストアドプロシージャを呼び出す場合、出力は次のようになります。

Column already exists. 

Exec Update_Records ‘N’ 

出力は次のようになります。

Table Altered 

コード

あなたがレコードをチェックしている
+0

のようなものは、(のproc Update_Recordsを変更@col_name varchar(100)) として begin 存在する場合(select * from my_table) エンド –

+1

COL_NAME COL_NAME = @ @ エンド 更新MY_TABLE セット「を変更されたテーブル」 印刷を開始 印刷が 終わり他 を「は既に存在します」を開始これは面接の質問のように見えます。 –

答えて

0
  • がテーブルに存在する列が
  • 存在していないあなたはありませんUpdate声明

列を追加するAlter文を必要とするこの

IF COL_LENGTH('dbo.my_table', @col_name) IS NOT NULL 
BEGIN 
    PRINT 'Column already exists' 
END 
ELSE 
BEGIN 
    SET @col_name = QUOTENAME(@col_name) 
    EXEC ('Alter Table my_table ADD '[email protected]_name+' varchar(100)') 
    PRINT 'Table Altered' 
END 
+0

DBAがこれについて何を言っているのか想像できません。 ANSIテキストも –

+0

@ PanagiotisKanavos - 私にとっては、奇妙な要求のように見えます。現実世界では、私はすぐに多くの列を追加することはありません。ちょうどそこにそれを行う方法があることを示しています.. –

+0

これは実際にインタビューの質問...画像の場合、生産コードがどのように見えるか醜い部分です。そうでない場合、同じです^ 2 –

関連する問題