c# - 从 C# 删除和创建存储过程

标签 c# sql-server

我希望在一些 C# 代码中创建一个临时存储过程。虽然它是一个临时存储过程,但如果它已经存在,我希望将其删除,以确保连接是否保持打开状态,当我第二次尝试创建它时,我不会遇到问题。

为此,我有以下几行 SQL:

IF OBJECT_ID('tempdb..#usp_GetSomething') IS NOT NULL
BEGIN
    DROP PROC #usp_GetSomething
END
GO

CREATE PROCEDURE #usp_GetSomething
    @Table VARCHAR(100) 
AS  
BEGIN
    SELECT @Table
END

这是有效的 SQL 并在 Management Studio 中执行。 但是,当我使用以下 C# 执行它时:

var cmd = new SqlCommand(theSQL, sqlConnection) {CommandType = CommandType.Text};
cmd.ExecuteNonQuery();

我收到以下错误:

“GO”附近的语法不正确。必须声明标量变量“@Table”。

我做错了什么?如何让 SQL 执行?

最佳答案

您将需要其中的 DMO/SMO 命名空间来执行此操作。

简单的 SqlCommand 无济于事。

https://msdn.microsoft.com/en-us/library/ms162169(v=sql.105).aspx

关于c# - 从 C# 删除和创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35464853/

相关文章:

php - DQL 选择具有一列 MAX 值的每一行

sql-server - 从 Service Broker 外部激活非 .NET 应用程序

c# - 使用非托管 "dll"对处理时间的影响。

java - 从 Android 应用程序获取功耗

c# - ASP.NET MVC : How do I display multiline text?

c# - .NET 单个类的多个命名空间

sql - 从存储过程中的表中返回所有 ID

c# - c#中的自动gui生成

sql-server - 使用 FreeTDS 的 Fatfree 数据库连接

sql-server - varchar 和 nvarchar SQL Server 数据类型之间的主要性能差异是什么?