のすべての列に置き換える適用されます。私は1つのフィールドに何かを交換する方法を知っているSQL Serverクエリ
Select Replace(Clmn1, char(9), ' ') as Clmn1
From TableA
は今、私は、テーブルのすべての列にステートメントを置き換えるに適用したいと思います。それを行う簡単な方法はありますか?
のすべての列に置き換える適用されます。私は1つのフィールドに何かを交換する方法を知っているSQL Serverクエリ
Select Replace(Clmn1, char(9), ' ') as Clmn1
From TableA
は今、私は、テーブルのすべての列にステートメントを置き換えるに適用したいと思います。それを行う簡単な方法はありますか?
申し訳ありませんが、そこには近道がここに(動的SQLの短い、しかし、あなたはそれをやりたいいけない!)ません
Select Replace(Clmn1, char(9), ' ') as Clmn1,
Replace(Clmn2, char(9), ' ') as Clmn2,
Replace(Clmn3, char(9), ' ') as Clmn3
From TableA
これはあなたが頻繁に行う何かがある場合は、ユーザー定義関数を、書くことができただろう少しあなたの声明
Select dbo.CleanChar9(Clmn1) as Clmn1,
dbo.CleanChar9(Clmn2) as Clmn2,
dbo.CleanChar9(Clmn3) as Clmn3
From TableA
各columのためにそれを繰り返す
CREATE FUNCTION dbo.CleanChar9(@val NVARCHAR(MAX)) -- use the appropriate type
AS
BEGIN
RETURN REPLACE(@val,CHAR(9), ' ');
END
スカラー関数はパフォーマンスにとって恐ろしいものです。これは、すべての行のすべての列に対してスカラー関数を呼び出すことになります。ああ。 –
@SeanLangeはい、そうです。私はこれを書いていると思っていた。私はおそらくそれを言及していたはずです。 – Jamiec
おそらく同じように簡単で短くnはsys.tablesとsys.columns、joinなどを見ています。 – scsimon