where句の条件をパラメータとして渡すときに何も返さないプロシージャ。以下はサンプルクエリです。パラメータとして@strWhereClauseField
& @strWhereClauseValue
を渡しています。クエリを文字列に変換して実行するとうまく動作します。しかし、order byはクエリ文字列内で動作していないため、クエリ文字列を使用したくありません。where句をパラメータとして渡すときにゼロ行を返すプロシージャ
DECLARE @Data TABLE
(
Id int identity(1,1), Product varchar(10)
)
INSERT @Data VALUES ('HP2030'), ('HP2031'), ('HP2032'), ('HP2033');
DECLARE @strWhereClauseField NVARCHAR(1000) = '1'
DECLARE @strWhereClauseValue NVARCHAR(1000) = '1'
SET @strWhereClauseField = '@Data.Product'
SET @strWhereClauseValue = '''HP2030'''
SELECT *
FROM @Data
WHERE @strWhereClauseField = @strWhereClauseValue
あなたの答えを感謝しますが、私はクエリ文字列で動作していないため、私の元のクエリはその長さのために切り捨てられているので、私はクエリ文字列を使用することはできません。 – user1891251
@ user1891251 'ORDER BY'は文字列に含めると完全に正常に動作します。そして、正確にあなたのクエリは 'varchar(max)'に収まらないのですか? –
長さは5000ですが、パラメータに基づいて変化する可能性があります – user1891251