次のような単一のストアド プロシージャを作成しました。
create proc sp_test
(@name nvarchar(100))
as
begin
select * from company
where company.companyname like '%'+@name+'%'
end
go
次に、ストアド プロシージャをテストします。会社名には Bob's Warehouse のように一重引用符が含まれている場合があるため、この名前をパラメーターとして使用して、DEV、SIT、UAT などのさまざまな環境でストアド プロシージャを実行します。一重引用符を 2 つの一重引用符に置き換えます。DEV では結果が得られますが、UAT では得られないことがわかりました。どうしてか分かりません。
exec sp_test 'Bob''s Warehouse'
これは、異なる環境でのデータベース設定に関するものですか? ある環境ではまったく同じコードが機能するのに、別の環境では機能しないのはなぜですか?
前もって感謝します。