SQL,动态打印。解决方法
SQL,动态打印。
------解决方案--------------------
SET @a 这个 你这样写 相当于拼接字符串了,就跟.cs文件中 拼接字符串一样。
这样说明白么?
------解决方案--------------------
因为动态的是字符型,你现在的@OrderID是int型,会报类型错误,必须转换成varchar型或nvarchar型等字符型。
- 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 @a PRINT @Sql SELECT * FROM [Orders]WHERE OrderID = @OrderID ORDER BY ORDERID DESC SELECT * FROM [Orders]WHERE OrderID = 10251 ORDER BY ORDERID DESC 中间为啥要将变量转换一下。
------解决方案--------------------
SET @a 这个 你这样写 相当于拼接字符串了,就跟.cs文件中 拼接字符串一样。
这样说明白么?
------解决方案--------------------
因为动态的是字符型,你现在的@OrderID是int型,会报类型错误,必须转换成varchar型或nvarchar型等字符型。