我有以下查询,该查询从应用程序调用 ASP.NET 并在同一表"DETAILS"中创建行子集,该子集由用于分页目的的参数 $f 2 和 $f 3 定义。
INSERT INTO DETAILS (ID, UIN, ACTIVE_IND, UGUID, CREATED_BY, CREATED_DATE)
SELECT AF.ID, AF.UIN, AF.ACTIVE, AF.UGUID, AF.CREATED_BY, AF.CREATED_DATE FROM
(SELECT #*$f0 ID, DET.UIN, DET.ACTIVE_IND, DET.UGUID, DET.CREATED_BY, DET.CREATED_DATE,
DENSE_RANK() OVER (ORDER BY P.PRODUCT_ID) FG
FROM DETAILS DET
JOIN PRODUCTS P ON P.UIN = DET.UIN
WHERE ID = #*$f1 ) AF
WHERE AF.FG BETWEEN #*$f2 AND #*$f3
调用此查询的 ASP.NET c# 代码如下所示
new SqlDataSource().ExecuteSql("InsertDetails",
new List<object>() {_subSetId, _mainSetId, start, end});
"InsertDetails"是上述查询的名称,"start"end"是分页范围。
我的问题是:此查询中的参数之前的"#*"是什么函数或用途??.我需要为其他表复制此查询,但想知道为什么参数像"#*$f 0"、"#*$f 1"、"#*$f 2"和"#*$f 3"这样传递。
你让我把我的评论作为答案。看来我猜对了:
有时这些奇怪的字符被用作占位符,这些占位符是 在调用之前在字符串级别替换(动态命令的一种 世代(...既不美丽也不干净,但有时 - 好吧 - 你知道的。。。
您可以使用探查器来监视语句 被直接处理
祝您编码愉快!