我在把以下这个存储过程,写成后台代码里.应该怎么写?谢谢?
就是类似于
string sql="exec  p_killspid 'test'";
SqlCommand cmd = new SqlCommand(sql, new SqlConnection(ConnStr));
cmd.Connection.Open();
cmd.ExecuteNonQuery();
下边这个存储过程格式我该怎么控制啊!下边是多句,还有换行!
///////////////////////////////////////////////////////
use master
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_killspid]
GO
create proc p_killspid
@dbname sysname--要关闭进程的数据库名
as  
declare @s nvarchar(1000)
declare tb cursor local for
select s='kill '+cast(spid as varchar)
from master..sysprocesses 
where dbid=db_id(@dbname)
open tb 
fetch next from tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch next from tb into @s
end
close tb
deallocate tb

解决方案 »

  1.   

    把go去掉,放在web.config里试一下,我是用这个方法创建了10多个表。
      

  2.   

    加上一个@符号string strProc = @"use master
    go
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[p_killspid]
    GO
    create proc p_killspid
    @dbname sysname--要关闭进程的数据库名
    as 
    declare @s nvarchar(1000)
    declare tb cursor local for
    select s='kill '+cast(spid as varchar)
    from master..sysprocesses 
    where dbid=db_id(@dbname)
    open tb 
    fetch next from tb into @s
    while @@fetch_status=0
    begin
    exec(@s)
    fetch next from tb into @s
    end
    close tb
    deallocate tb
    ";这样就可以了!