Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
用 sp_executesql 解决字段名、表名不能用变量的问题

在 T-SQL 应用中,有时我们无法立即确定字段名或表名,我们希望字段名或表名能像变量一样自由变换,如:
declare @fld varchar(255)
select @fld = 'userName'
select @fld from tbl

上述代码试图用 @fld 变量代替字段名 userName,但在实际使用中却会换错,同样在表名也无法直接用变量,要解决此问题,我们可以用存储过程:sp_executesql,该存储过程可以只接一个参数,即 SQL 语句字符串。如:exec sp_executesql @statement,注意:@statement 参数只能是 ntext/nchar/nvarchar 类型。

示例:
declare @fld nvarchar(255)
declare @sql nvarchar(255)
select @fld = 'userName'
select @sql = 'select ' + @fld + ' from tbl'
exec sp_executesql @sql

文章评论
标题:必填
内容:
文章信息