如何在Dynamic Sql中添加变量,而不是连接它们?
我有以下动态 sql 语句,我想在其中添加 @StartRowIndex + @MaximumRows 并从中减去 1。我不清楚在声明中将单引号放在哪里。这里是:
SET @sql = @sql + ' SELECT *
FROM
LicenseInfo
WHERE RowNum
BETWEEN ' + @StartRowIndex + ' AND ' +
'(' + @StartRowIndex + @MaximumRows + ')' - 1
+ ' ORDER BY cnt desc'
I have the following dynamic sql statement where I want to add @StartRowIndex + @MaximumRows and subtract 1 from it. I am unclear on where to put the single quotes in the statement. Here it is:
SET @sql = @sql + ' SELECT *
FROM
LicenseInfo
WHERE RowNum
BETWEEN ' + @StartRowIndex + ' AND ' +
'(' + @StartRowIndex + @MaximumRows + ')' - 1
+ ' ORDER BY cnt desc'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
创建新变量
@EndRowIndex
并在构造动态sql语句之前计算它。像这样的东西:
Create new variable
@EndRowIndex
and calculate it before you construct the dynamic sql statement.Something like:
您需要将 int 参数转换为 varchar
You need to cast the int parameters into varchar
声明一个变量,进行计算并在生成 SQL 语句时将其转换为 varchar
您必须进行转换才能让 SQL Server 连接字符串值,否则它将尝试将 nVarChar 转换为数字并尝试将它们添加为数字。
Declare a variable, do the calculation and CAST it to varchar when generating the SQL statement
You have to cast in order to let SQL Server concatenate string values, otherwise it will try to convert the nVarChar to number and try to add them as numerics.