Sql server 在c中读取和更改Sql Server对象#
我已经编写了一个示例Sql存储过程Sql server 在c中读取和更改Sql Server对象#,sql-server,c#-4.0,Sql Server,C# 4.0,我已经编写了一个示例Sql存储过程 USE [Db] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[usp_TestProcedure] AS BEGIN SET NOCOUNT ON; PRINT 'Good evening' END 工作正常。现在,我想使用c#读取和修改这个存储过程(以及类似于函数和视图的db对象)。
USE [Db]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[usp_TestProcedure]
AS
BEGIN
SET NOCOUNT ON;
PRINT 'Good evening'
END
工作正常。现在,我想使用c#读取和修改这个存储过程(以及类似于函数和视图的db对象)。可以用c#完成吗我正在使用Server 2014和C#4.5。您想在C#中使用DDL,可能是: 如果你想在C语言中实现,你必须使用ServerConnection而不是标准的SqlConnection。看看这个例子:
public bool RunScriptsInTransaction(string script)
{
ServerConnection sCon = new ServerConnection(this.m_dbConnection);
sCon.BeginTransaction();
try
{
sCon.ExecuteNonQuery(script);
sCon.CommitTransaction();
}
catch (Exception e)
{
sCon.RollBackTransaction();
return false;
}
return true;
}
您必须添加引用才能使用ServerConction:
也许您需要安装SQLSysClrTypes、SharedManagementObject并重新启动要运行它的计算机。我现在不知道您有什么SQL SERVER,但对于SQL 2014 x64,它将是:
RunScriptsInTransaction(@"
ALTER PROCEDURE [dbo].[usp_TestProcedure]
AS
BEGIN
SET NOCOUNT ON;
PRINT 'Good evening'
END
GO
");
@马西米利亚诺:谢谢你的快速回复。但是,这不是我想要的解决方案。这里给出了如何动态创建存储过程。我已经创建了存储过程,希望对其进行修改。例如,我想在过程中添加一行“带加密”。我如何才能做到这一点?是的。。。你能提供我完整的例子或链接遵循吗?谢谢回复。但是,在这里,我不知道过程中会发生什么。我的意思是,用户将给出过程的名称,我需要以编程方式修改它。这里,我的问题是如何从Sql server读取c#中存储过程的内容?你提供的代码是我要求的第二部分。谢谢你的帮助。谢谢,谢谢Arkadiusz给我指路。。我找到了这个链接,了解了更多的事情,谢谢你的帮助。
RunScriptsInTransaction(@"
ALTER PROCEDURE [dbo].[usp_TestProcedure]
AS
BEGIN
SET NOCOUNT ON;
PRINT 'Good evening'
END
GO
");