プロシージャを作成するための次のSQLがあります。
create procedure [dbo].[spGetProduct](@col_sort varchar(100), @dir_sort varchar(4), @filters nvarchar(max)) as
begin
declare @temp table (
row_num int,
product_id int,
product_name nvarchar(255),
produnit_name nvarchar(50)
)
insert into @temp
EXEC('select * from (select (ROW_NUMBER() OVER (ORDER BY '+@col_sort+' '+@dir_sort+')) row_num, product_id, product_name, dbo.fnGetUnitName(ing_produnit) produnit_name
from dbo.Products
where '+@filters+') as tmp)
select * from @temp
end
情報:
dir_sort
asc
またはdesc
でありcol_sort
、列名の1つを含む文字列です。
この場合のフィルターは関係ありません。
にcol_sort
値がある場合product_id
、またはproduct_name
正常に機能している場合ですが、それを使用して呼び出すとprodunit_name
エラーが発生します。
この場合、その列でデータを並べ替えるにはどうすればよいですか?
編集:
エラーは次のとおりです。
列名'produnit_name'が無効です。