我想知道为什么我不能使用CAST函数作为参数在存储过程中设置ROWCOUNT。为什么CAST不能和SET ROWCOUNT一起使用?
此代码失败:
CREATE PROCEDURE GetTransactions
@Count VARCHAR(5)
AS
SET ROWCOUNT CAST(@Count AS INT);
...
尽管此代码与中介变量的工作原理:
CREATE PROCEDURE GetTransactions
@Count VARCHAR(5)
AS
Declare @Rows AS INT;
SET @Rows = CAST(@Count AS INT);
SET ROWCOUNT @Rows;
...
我知道,改变参数类型为INT也可以解决这个问题,但中间层调用存储过程的组件需要一切为String类型。
只是因为你不能!你必须使用中间变量。为什么这是一个大问题? – 2012-01-09 03:43:30
哈哈!哇,我永远不会认为这是显而易见的!我只是想让代码尽可能简单。 – Graham 2012-01-09 03:45:21