官术网_书友最值得收藏!

  • Learn T-SQL Querying
  • Pedro Lopes Pam Lahoud
  • 164字
  • 2021-06-24 14:38:13

Forced parameterization

If an application tends to generate many ad hoc queries, and there is no way to modify the application to parameterize the queries, the Parameterization database option can be changed to Forced. When Forced Parameterization is turned on, SQL Server will replace ALL literal values in ALL ad hoc queries with parameter markers. Take the example of the following query executed in the AdventureWorks sample database:

SELECT LastName, FirstName, MiddleName
FROM Person.Person
WHERE PersonType = N'EM' AND BusinessEntityID IN (5, 7, 13, 17, 19);

This query would be automatically parameterized under Forced Parameterization, as follows:

(@1 nchar(2), @2 int, @3 int, @4 int, @5 int, @6 int)  SELECT LastName, FirstName, MiddleName
FROM Person.Person
WHERE PersonType = @1 AND BusinessEntityID IN (@2, @3, @4, @5, @6);

This has the benefit of increasing the reusability of all ad hoc queries, but there are some risks to parameterizing all literal values in all queries, which will be discussed later in section The importance of parameters.

主站蜘蛛池模板: 连江县| 鄄城县| 成安县| 长春市| 巴马| 高密市| 石楼县| 阳新县| 股票| 潢川县| 乌兰浩特市| 安阳县| 安泽县| 陕西省| 麻阳| 盘锦市| 嵩明县| 黑山县| 贺兰县| 西乌珠穆沁旗| 南溪县| 化隆| 天长市| 扶风县| 涿州市| 临朐县| 滁州市| 准格尔旗| 大悟县| 吴桥县| 大洼县| 鄯善县| 吴忠市| 治多县| 桃园县| 根河市| 灵武市| 孝感市| 廊坊市| 临澧县| 徐水县|