當通過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包含在字符串中,ORDER BY'可以很好地工作。確切地說你的查詢有多長時間不適合'varchar(max)'? –
長度爲5000,但它可以根據參數 – user1891251