存储过程中怎么使用字符串参数?
我想用字符串传递表名:
create proc [dbo].[DeleteMulti](@forumID int, @tableName char(50))
AS
...
if (Exists(Select ID from @tableName where ParentID=@temp and ForumID=@forumID))
begin
select @delID=ID from @tableName Where ParentID=@delID and ForumID=@forumID
set @temp = @delID
end
...
为什么老说我没有声明@tableName变量呢?
@tableName不是传入的参数吗?
[解决办法]
不能这样做的.应该用动态sql
[解决办法]
不能这样做的.
应该用动态sql
对的 表明不能传 必须拼!
[解决办法]
Select ID from @tableName where ParentID=@temp and ForumID=@forumID
===============
FROM 字句中 表名 不支持使用参数
[解决办法]
可以传递字符串的,用string传递
把你的代码全部贴上吧
[解决办法]
CREATE PROCEDURE PROC_TEST (@TableName varchar(50)) AS exec( ' select Name from '+ @TableName + 'where ParentID <> 0 ') GO
[解决办法]
只能帮顶了!!