使用动态SQL通过向简单的sql查询添加变量来指定列名
发布时间:2021-02-22 07:18:10 所属栏目:MsSql教程 来源:网络整理
导读:sql 2005 / sql 2008 Declare @temp nvarchar(1000)set @temp = 'ABC'select col1,col2 from tableA 与select查询一起,如何向select查询添加变量? expected output :-select col1,col2,@temp as [col3] from tableA 其中@temp指定tableA中列的名称. 解决方法
|
sql 2005 / sql 2008 Declare @temp nvarchar(1000) set @temp = 'ABC' select col1,col2 from tableA 与select查询一起,如何向select查询添加变量? expected output :- select col1,col2,@temp as [col3] from tableA 其中@temp指定tableA中列的名称. 解决方法如果您尝试动态指定列名,可以查看执行动态sql.但是,您应该首先了解这种方法的危险性:http://www.sommarskog.se/dynamic_sql.html 在该页面中,有一个示例显示动态指定表名称 – 您可以更改它,以便它动态指定列名称: CREATE PROCEDURE general_select @tblname nvarchar(128),@key varchar(10),@debug bit = 0 AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT col1,col3
FROM dbo.' + quotename(@tblname) + '
WHERE keycol = @key'
IF @debug = 1 PRINT @sql
EXEC sp_executesql @sql,N'@key varchar(10)',@key = @key
例如,如果你有一个名为’x’,’y’和’z’的表’MyTable’,它可能看起来像: DECLARE @columnName nvarchar(128) DECLARE @sql nvarchar(4000) set @columnName = 'z' SET @sql = 'SELECT x,y,' + @columnName + ' from MyTable' EXEC sp_executesql @sql,N'@columnName varchar(128)',@columnName = @columnName (编辑:张家界站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- LINQ:如何在多个字段上使用linq扩展方法样式进行JOIN?
- sql-server – 如何从MS SQL中的text / varchar中选择正则表
- sql-server – 缩小SQL Server日志文件如何影响性能?
- 鼠标的类型
- 商务王:广州菱隆科技公司的“进销存”解决方案
- sql-server – 即使在使用中也使用MSBuild删除数据库
- sql-server-2005 – 在SQL Server 2005中向存储过程添加参数
- sql – 在oracle中更新多个嵌套表中的多个记录
- 数据库设计 – 在逻辑/布尔数据库字段中使用[0,1]与[“Y”,
- NESO:打造清晰锐利高亮之极光珑 HD770Ⅱ
站长推荐
热点阅读


