我遇到了一个问题,与我的SQL存储过程有关,具体来说是在使用VARCHAR()作为表名时出现了问题。
我的代码(不起作用)如下:
CREATE PROCEDURE DeleteUser
@Username VARCHAR(50)
AS
BEGIN
--DROP THE SURF TABLE
IF EXISTS (SELECT 1
FROM sysobjects
WHERE xtype='u' AND name=@Username + '_table')
DROP TABLE @Username + '_table'
END
GO
然而,在执行时,它会在 DROP TABLE @Username + '_table'
行出现错误。
我可能做错了什么?
如果有影响的话,我是从C#中调用MS SQL Server 2008。