sql-server – 如何在带有变量的select查询中使用SQL Server表名?
发布时间:2020-05-24 09:49:15 所属栏目:MsSql 来源:互联网
导读:这是不正确的,我们不能动态地将表名传递给选择查询吗? 这给了我一个错误’必须声明表变量@TblName’ DECLARE @TblName VARCHAR(30)SET @TblName = UserSELECT * FROM @TblName 您需要创建动态SQL查询,最好使用 QUOTENAME函数.使用QUOTENAME函数可以避免任何
|
这是不正确的,我们不能动态地将表名传递给选择查询吗? 这给了我一个错误’必须声明表变量@TblName’ DECLARE @TblName VARCHAR(30) SET @TblName = 'User' SELECT * FROM @TblName 解决方法您需要创建动态SQL查询,最好使用 QUOTENAME函数.使用QUOTENAME函数可以避免任何恶意输入问题.下面是一个示例脚本,演示了如何通过传入表名来创建动态SQL查询来查询表.您可以按值将表名更改为变量@tablename. 为示例创建和插入脚本: CREATE TABLE sample
(
id INT NOT NULL
);
INSERT INTO sample (id) VALUES
(1),(2),(3),(4),(5),(6);
动态SQL脚本: DECLARE @execquery AS NVARCHAR(MAX) DECLARE @tablename AS NVARCHAR(128) SET @tablename = 'sample' SET @execquery = N'SELECT * FROM ' + QUOTENAME(@tablename) EXECUTE sp_executesql @execquery 演示: Click here to view the demo in SQL Fiddle. 建议阅读: The Curse and Blessings of Dynamic SQL (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
