sách gpt4 ai đã đi

sql - exec sp_executesql @sql 和 exec (@sql) SQL Server

In lại 作者:行者123 更新时间:2023-12-02 11:14:13 27 4
mua khóa gpt4 Nike

Từ lobodava 的动态 SQL 查询是:

declare @sql nvarchar(4000) =
N';with cteColumnts (ORDINAL_POSITION, COLUMN_NAME) as
(
select ORDINAL_POSITION, COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = N'''+ @tableName + ''' and COLUMN_NAME like ''' + @columnLikeFilter + '''
),
cteValues (ColumnName, SumValue) as
(
SELECT ColumnName, SumValue
FROM
(SELECT ' + @sumColumns + '
FROM dbo.' + @tableName + ') p
UNPIVOT
(SumValue FOR ColumnName IN
(' + @columns + ')
)AS unpvt
)
select row_number() over(order by ORDINAL_POSITION) as ID, ColumnName, SumValue
from cteColumnts c inner join cteValues v on COLUMN_NAME = ColumnName
order by ORDINAL_POSITION'

exec sp_executesql @sql
--或者
执行(@sql)

为什么 lobodava 选择 exec sp_executesql @sql Còn hơn là exec(@sql)那么这里有什么区别呢?
在递归动态查询上使用 sp_executesql 是否更好?
在其他帖子中,他们说 sp_executesql 更有可能促进查询计划重用......那么它对此类查询有帮助吗?

1 Câu trả lời

bởi vì EXEC sp_executesql 会缓存查询计划 - EXEC 不会。有关更多信息和很好的阅读内容,请参阅:

缓存查询意味着查询的逻辑会被临时存储,并使其以后更快地运行查询。

关于sql - exec sp_executesql @sql 和 exec (@sql) SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5255463/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com