分类

链接

2011 年 11 月
 123456
78910111213
14151617181920
21222324252627
282930  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > SQL Server > 正文
共享办公室出租
动态SQL语句处理中的常见问题
SQL Server 暂无评论 阅读(1,682)

--1.数据类型转换的问题

  1. DECLARE @value int
  2. SET @value=100
  3.  
  4. DECLARE @sql varchar(8000)
  5. SET @sql='SELECT * FROM tbname WHERE col='+@value
  6. EXEC(@sql)
  7. GO

/*======================================================*/

--2.字符串边界符的问题

  1. DECLARE @value varchar(10)
  2. SET @value='aa'
  3.  
  4. DECLARE @sql1 varchar(8000),@sql2 varchar(8000),@sql3 varchar(8000)
  5. SET @sql1='SELECT * FROM tbname WHERE col1='+@value
  6. SET @sql2='SELECT * FROM tbname WHERE col1=''+@value+'
  7. SET @sql3='SELECT * FROM tbname WHERE col1='''+@value+''''
  8. GO
  9.  
  10. DECLARE @value varchar(10)
  11. SELECT @value='a''a'
  12.  
  13. DECLARE @sql varchar(8000)
  14. SET @sql='SELECT * FROM tbname WHERE col='''+@value+''''
  15. EXEC(@sql)
  16. GO

/*======================================================*/

--3.表名及字段名的问题

  1. DECLARE @tbname sysname
  2. SET @tbname='sysobjects'
  3. SELECT * FROM @tbname
  4. GO
  5.  
  6. DECLARE @tbname sysname
  7. SET @tbname='sysobjects'
  8. EXEC sp_executesql N'SELECT * FROM @tbname',N'@tbname sysname',@tbname
  9. GO

/*======================================================*/

--4.返回值的问题

  1. DECLARE @tbname sysname,@sql varchar(100)
  2. SET @sql='SELECT @tbname=name FROM sysobjects where id=1'
  3. EXEC(@sql)
  4. SELECT @tbname
  5. GO
  6. DECLARE @tbname sysname,@sql varchar(100)
  7. SET @sql='SELECT '+@tbname+'=name FROM sysobjects where id=1'
  8. EXEC(@sql)
  9. SELECT @tbname

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:动态SQL语句处理中的常见问题 | Bruce's Blog

发表评论

留言无头像?