首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个简单的动态SQL语句,为什么总报错,郁闷~该如何处理

2012-01-15 
一个简单的动态SQL语句,为什么总报错,郁闷~~~DECLARE@SQLNVARCHAR(3000)DECLARE@TbNamevarchar(50)SET@TbN

一个简单的动态SQL语句,为什么总报错,郁闷~~~
DECLARE   @SQL   NVARCHAR(3000)
DECLARE   @TbName   varchar(50)
SET   @TbName= 'type_Trade '
DECLARE   @typeParentID   INT
SET   @typeParentID=0
SET   @SQL= 'SELECT   typeID,typeName   FROM   '   +   @TbName   +   '   WHERE   typePath= '   +   @typeParentID
EXEC(@SQL)

如题,报错误如下:
将   varchar   值   'SELECT   typeID,typeName   FROM   type_Trade   WHERE   typePath= '   转换为数据类型为   int   的列时发生语法错误。

为什么?

[解决办法]
SET @SQL= 'SELECT typeID,typeName FROM ' + @TbName + ' WHERE typePath= ' + ltrim(@typeParentID)
[解决办法]
DECLARE @SQL NVARCHAR(3000)
DECLARE @TbName varchar(50)
SET @TbName= 'type_Trade '
DECLARE @typeParentID INT
SET @typeParentID=0
SET @SQL= 'SELECT typeID,typeName FROM ' + @TbName + ' WHERE typePath= ' + Cast(@typeParentID As Varchar)
EXEC(@SQL)
[解决办法]
INT, DateTime類型在拼接動態SQL語句的時候需要做下轉換

热点排行