sql-server – 如何在带有变量的select查询中使用SQL Server表名
发布时间:2020-12-12 06:59:47 所属栏目:MsSql教程 来源:网络整理
导读:这是不正确的,我们不能动态地将表名传递给选择查询吗? 这给了我一个错误’必须声明表变量@TblName’ DECLARE @TblName VARCHAR(30)SET @TblName = 'User'SELECT * 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |