2011-08-01 23 views
1

DB2とSQL Serverの間でビューを移動しようとしています。DB2からSQL Server 2005へのビュー

ビューはDB2では機能しますが、WHERE句のためSQL Serverでは機能しません。このビューをSQL Serverで使用するために書き直す方法に関する推奨事項はありますか?

CREATE VIEW msu.bad_bus_cnty_st_mstr 
AS 
    SELECT id, 
     bus_cnty_cntry_cd, 
     bus_st, 
     bus_zip 
    FROM summit.mstr m 
    WHERE EXISTS(SELECT 1 FROM uhelp.cnty_cntry_cd c 
    WHERE c.cnty_cntry_descr LIKE '%invalid%' 
    AND c.bus_cnty_cntry_cd = m.bus_cnty_cntry_cd 
    AND c.st = m.bus_st) 

答えて

0

+0

メッセージ102、レベル15、状態1、プロシージャbad_bus_cnty_st_mstr、ライン8 付近に正しくない構文 ''。 はSQL2005で受け取るエラーmsgです。 – andyhky

+0

私のコードを正確にコピーしましたか? 8行目にカンマはありません。私のコードのカンマは、SELECTリストの列間のコンマのみです。おそらく余分な末尾にカンマを追加しましたか? –

+0

申し訳ありませんが、私が受け取った元のエラーメッセージです(たとえば、「うまくいかない」という意味です) – andyhky

0

一つの方法は、それは通常の手段(例えば、どのようなエラーがあなたが手に入れた)と、また、あなたが使用しているSQL Serverのバージョンを指定するための「動作しない」かを定義するのに役立ちます。

残念ながら、SQL Serverでは複数の句があるIN()はサポートされていません。あなたのビューこの方法を再書き込みすることができますしかし:

ALTER VIEW msu.bad_bus_cnty_st_mstr 
AS 
    SELECT id, 
     bus_cnty_cntry_cd, 
     bus_st, 
     bus_zip 
    FROM summit.mstr AS mstr 
    WHERE EXISTS 
    (
    SELECT 1 
     FROM uhelp.cnty_cntry_cd 
     WHERE cnty_cntry_descr LIKE '%invalid%' 
     AND cnty_cntry_cd = mstr.bus_cnty_cntry_cd 
     AND st = mstr.bus_st 
); 
関連する問題