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也没有任何好处。事实上,在客户机上创建参数化查询并在服务器上执行更安全