用Sqlcommand执行如下的sql语句,就可以创建存储过程了。SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOIF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[spGetCustomerEvaluateStateReportByEmployee]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: <sixi> -- Create date: <2009-07-15> -- Description: <根据提供的开始日期和结束日期以及机构代码生成客户满意度月度报表(按柜员排序)> -- ============================================= CREATE PROCEDURE [spGetCustomerEvaluateStateReportByEmployee] -- Add the parameters for the stored procedure here @DatetimeBegin datetime,--开始日期 @DatetimeEnd datetime,--结束日期 @PlaceNo varchar(10)--机构编号 AS BEGIN--相关代码 END'
3楼是如何在C#中执行存储过程,楼主好像不是这个意思吧。如果想通过C#直接在程序中创建存储过程,和执行CUD操作类似,只是将CommandText属性设置成创建存储过程的SQL语句应该就可以了。还有如果希望查询数据库中都有哪些存储过程,执行类型下面的语句,可以返回当前数据库的存储过程 Select * From SysObjects Where Type Like 'P'
显示存储过程可借助系统存储过程sp_helptext
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText("ProcedureName");
cmd.ExecuteNonQuery();
DbConnection 你得初始化。
DbCommand cmd = new DbConnection().CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText("[color=#33CCCC]ProcedureName");
cmd.ExecuteNonQuery();[/color]ProcedureName 就是在DBMS创建的存储过程的名称
GO
SET QUOTED_IDENTIFIER ON
GOIF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[spGetCustomerEvaluateStateReportByEmployee]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1)
BEGIN
EXEC dbo.sp_executesql @statement = N'-- =============================================
-- Author: <sixi>
-- Create date: <2009-07-15>
-- Description: <根据提供的开始日期和结束日期以及机构代码生成客户满意度月度报表(按柜员排序)>
-- =============================================
CREATE PROCEDURE [spGetCustomerEvaluateStateReportByEmployee]
-- Add the parameters for the stored procedure here
@DatetimeBegin datetime,--开始日期
@DatetimeEnd datetime,--结束日期
@PlaceNo varchar(10)--机构编号
AS
BEGIN--相关代码
END'
Select * From SysObjects Where Type Like 'P'