默认架构不存在。执行存储过程时出错

时间:2016-03-01 16:00:07

标签: asp.net sql-server stored-procedures ado.net

创建存储过程

CREATE PROCEDURE dbo.GetBookList
    -- Add the parameters for the stored procedure here

AS
BEGIN
create table BookAuthersName
(
BookId int,
Names varchar(255)
);

insert into BookAthersName(BookId,Names)
select 
    t1.BookId,
    stuff((select ', '+a.Name
           from BookAuthers t2 join Authers a on t2.AutherId= a.Id where t1.BookId = t2.BookId
           for xml path('')),
          1,2,'') [Values]
from  dbo.BookAuthers t1 
group by t1.BookId

create table BookSubjectNames
(
BookTypeId int,
Names varchar(255)
);
insert into BookSubjectNames(BookTypeId,Names)
select 
    t1.BookTypeId,
    stuff((select ', '+a.Name
           from BookTypeSubjects t2 join Subjects a on t2.SubjectId= a.Id where t1.BookTypeId = t2.BookTypeId
           for xml path('')),
          1,2,'') [Values]
from  dbo.BookTypeSubjects t1 
group by t1.BookTypeId

SELECT        dbo.BooksType.Name, dbo.BooksType.BuyingDate AS [Buying Date], dbo.Publishers.Name AS [Publisher Name], dbo.Inventory.TotalBooks AS [Total Books], 
                         dbo.Inventory.TotalIssuedBooks AS [Total Issued Books], ban.Names as [Auther Names] ,bsn.Names as [Subject Names]
FROM            dbo.BooksType INNER JOIN dbo.Inventory 
ON dbo.BooksType.Id = dbo.Inventory.BookTypeId
 INNER JOIN  dbo.Publishers ON dbo.BooksType.PublisherId = dbo.Publishers.Id
inner join BookAuthersName ban on dbo.BooksType.Id = ban .BookId 
inner join BookSubjectNames bsn on dbo.BooksType.Id = bsn .BookTypeId 


drop table BookAuthersName
drop table BookSubjectNames

END

通过.net网站执行时出错。错误是

  

默认架构不存在。执行存储时出错   过程

通过一些解决方案但似乎没有任何帮助

我在webconfig连接字符串中使用Integrated Security=True

1 个答案:

答案 0 :(得分:1)

首先,您必须通过查询获取架构名称

select schema_name()

如果架构名称为null,则必须尝试通过查询设置默认名称

ALTER USER [dbo.database_name] WITH DEFAULT_SCHEMA = [dbo];