首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态SQL连接

动态SQL连接
EN

Stack Overflow用户
提问于 2011-09-27 23:44:28
回答 2查看 2.4K关注 0票数 0

连接以下语句时出现问题。

基本上,我希望长度列增加英寸后,但它不会运行。我将在将来创建一个函数,但无法跳过这一步。怎么回事?

代码语言:javascript
复制
declare @column varchar(255)
declare @sql varchar(5000)
declare @additional varchar(500)

set @column = 'length'

set @additional = 'inches'

select @sql = 'select distinct ps.p_c_id, '

select @sql = @sql +  @column + ' '+@additional+ ' ' + ' as value'

select @sql = @sql

select @sql = @sql + ' from dbo.Product ps
inner join dbo.ProductAttributes psa on psa.p_s_id = ps.p_s_id
where ps.p_c_id is not null and ' + @column + ' is not null'


exec (@sql)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-28 00:00:31

您正在连接,我假设是一个整型或浮点型的值到一个字符串‘英寸’...必须将"length“值转换为varchar...下一次只需选择@sql来查看生成的语法,它就会跳出来。以下是在实现EXEC sp_executesql ...makes动态BTW...look时应该做的更改,通过使用参数等,不太容易注入。在general...see文章MSDN SQL Injection中的书籍中查找Sorry...eating Crow...sp_executesql does not protect from just improves performance

代码语言:javascript
复制
declare @column varchar(255) 
declare @sql varchar(5000) 
declare @additional varchar(500) 

set @column = 'psa.length' 

set @additional = 'inches' 

select @sql = 'select distinct ps.p_c_id, ' 

select @sql = @sql + 'CAST(' + @column + ' AS varchar(10)) + ' + ''' '+@additional+ ''' ' + ' as value' 

select @sql = @sql 

select @sql = @sql + ' from dbo.Product ps 
inner join dbo.ProductAttributes psa on psa.p_s_id = ps.p_s_id 
where ps.p_c_id is not null and ' + @column + ' is not null' 

--select @sql AS [ExecutableSQL]
exec(@sql)
票数 1
EN

Stack Overflow用户

发布于 2011-09-27 23:49:30

你的输出是;

代码语言:javascript
复制
select distinct ps.p_c_id, length inches  as value from dbo.Product ps
inner join dbo.ProductAttributes psa on psa.p_s_id = ps.p_s_id
where ps.p_c_id is not null and length is not null

所以它看起来像是length inches之间缺少的,,假设你想要这两个;

代码语言:javascript
复制
select @sql = @sql +  @column + ','+ @additional+ ' ' + ' as value'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7571914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档