Sql server 使用SQL Server过程参数

Sql server 使用SQL Server过程参数,sql-server,stored-procedures,parameters,Sql Server,Stored Procedures,Parameters,我成功创建了一个过程,但在执行过程时使用参数时遇到问题 CREATE PROCEDURE TestProc @table varchar(200) AS UPDATE [test].[dbo].[@table] SET [Column 9] = [Column 10] WHERE [Column 9] = 'Example1' OR [Column 9] = 'Example2' GO 当

我成功创建了一个过程,但在执行过程时使用参数时遇到问题

CREATE PROCEDURE TestProc 
     @table varchar(200)    
AS   
     UPDATE [test].[dbo].[@table]           
     SET [Column 9] = [Column 10]
     WHERE [Column 9] = 'Example1' 
        OR [Column 9] = 'Example2'     
GO
当程序像这样执行时

EXEC TestProc @table= '2015-07'
我想更新表
[test].[dbo].[2015-07]


有人知道如何解决这个问题吗?

如果我告诉您要将表名传递给过程并在过程中更新此表。尝试使用下面的代码,但它仅适用于包含
第9列
第10列

CREATE PROCEDURE TestProc @table varchar(200)    
AS   
DECLARE @SQL varchar(500)
SET @SQL = 'UPDATE [test].[dbo].[' + @table + ']           
            SET [Column 9]=[Column 10]
            WHERE [Column 9]= ''Example1'' OR [Column 9]=''Example2''' 
EXEC (@SQL) 
GO

类似的问题是,不能将表作为参数传递。与在客户机上编写语句相比,在存储过程中使用动态SQL也没有任何好处。事实上,在客户机上创建参数化查询并在服务器上执行更安全