gpt4 book ai didi

sql - 使用动态 SQL 删除表

转载 作者:行者123 更新时间:2023-12-03 01:57:35 24 4
gpt4 key购买 nike

我的 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' 行出错。

我可能做错了什么?

如果重要的话,我正在使用 MS SQL Server 2008,从 C# 调用。

最佳答案

DROP TABLE 语句无法在您尝试时进行参数化。您将需要动态 SQL。

DECLARE @DynSql nvarchar(max) = 'DROP TABLE ' + QUOTENAME(@Username + '_table');
EXEC(@DynSql);

关于sql - 使用动态 SQL 删除表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com