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

SQL,动态打印。解决方法

2012-08-21 
SQL,动态打印。SQL codeDECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID int , @a varchar(10

SQL,动态打印。

SQL code
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID int , @a varchar(100)SET @TableName = 'Orders';SET @OrderID=10251;SET @a = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = @OrderID ORDER BY ORDERID DESC'SET @Sql = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'PRINT @aPRINT @SqlSELECT * FROM [Orders]WHERE OrderID = @OrderID ORDER BY ORDERID DESCSELECT * FROM [Orders]WHERE OrderID = 10251 ORDER BY ORDERID DESC中间为啥要将变量转换一下。


[解决办法]
SET @a 这个 你这样写 相当于拼接字符串了,就跟.cs文件中 拼接字符串一样。
这样说明白么?
[解决办法]
因为动态的是字符型,你现在的@OrderID是int型,会报类型错误,必须转换成varchar型或nvarchar型等字符型。

热点排行