Q atrie560lcd:
我想在存储过程中使用变量代替表名,以便对一样格式的不同的表进行数据更改,但我不知道该怎么做。
create procedure proc1
as
declare @tbname varchar(11),@cs int
update @tbname set zd1=zd1+@cs
结果显示:第4行有错误,必须声明变量 @tbname
请问应该怎样写?
A回答:
将 Update @tbname set zd1=zd1+@cs
该为:
update Table1 @tbname set zd1=zd1+@cs
或 Update Table1 as @tbname set zd1=zd1+@cs (注:table1 为原表名)
peiyan的意见:
CREATE PROCEDURE
Find_Dj @table_name varchar(20),@strsql varchar(20)
AS
declare @sql varchar(200)
set @sql=\\\'\\\'select * from \\\'\\\'+@table_name+ \\\'\\\' where \\\'\\\'+ @strsql
execute(@sql)
乐全云的意见:
create procedure proc1
as
declare @tbname varchar(11),@cs int
declare @SQLSTRING NVARCHAR(4000)
SET @SQLSTRING=N\\\'\\\' update \\\'\\\'+@tbname+\\\'\\\' set zd1=zd1+\\\'\\\'+@cs
EXEC sp_executesql @SQLSTRING
返回类别: 教程
上一教程: SQL Server 2005:数据类型最大值
下一教程: 在SQL Server存储过程中执行DTS包
您可以阅读与"如何在存储过程中使用变量代替表名"相关的教程:
· 在 ACCESS 中使用“存储过程”(一)
· 在ACCESS中使用“存储过程”(二)
· 在SQL Server存储过程中执行DTS包
· 如何在视图中使用ORDER BY短语
· 使用链接服务器执行远程数据库上的存储过程