我想问是否可以在运行时组合 SQL 查询。
假设我有一个带有参数的存储过程@type(int)
,@name(varchar(50))=null
并且@dept(varchar(50))=null
。
现在我有一个查询Select * from Employees
。
我的问题是我可以动态添加类似where name = @name
when @type = 1 或where dept = @dept
when @type = 2
你可以写
where (@type = 1 and name = @name) or (@type = 2 and dept = @dept)
是的,你可以这么做。
以下链接显示了如何在存储过程中使用参数。
http://www.codeproject.com/Articles/126898/Sql-Server-How-to-write-a-Stored-procedure-in-Sql
如果您使用的是 ADO.Net,请阅读Populating A DataSet from a DataAdapter (ADO.Net)和Generate Commands With CommandBuilders (ADO.Net)。