T-SQL创建动态where语句?

Spo*_*oks 3 sql t-sql sql-server

我知道这是不可能的,但有什么可行吗?基本上我希望where语句是动态的,允许我传递任何字符串,它将能够搜索.

Declare @search varchar(80)
set @search = 'RegionID'

Select * from TBL_TripDetails
Where @search = '1'
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答.在阅读了几篇文档之后,我决定使用多个select语句而不是使用动态sql.谢谢!

Rem*_*anu 5

declare @sql nvarchar(max);
set @sql = N'select * from table where ' + quotename(@search) + N'=''1''';
exec sp_executesql @sql;
Run Code Online (Sandbox Code Playgroud)

请参阅动态SQL的诅咒和祝福

  • 虽然第二个想法,我可能只是使用多个选择陈述,风险不值得奖励 (4认同)