2013-10-23 79 views
0

我正在通过运行SQL Server的Web服务编写聊天代码。 我在Visual Studio 2010上使用C#。LINQ TO SQL,存储过程不会创建临时表

我有一个应该创建临时表的sproc。 当我在Management Studio中执行过程时,它会创建一个临时表。 但是当我在LINQ to SQL上执行该过程时,它会进入该过程使所有内容正确,但不会创建TempTable。

下面的SQL代码:

BEGIN 
     SET NOCOUNT ON; 
     DECLARE @SQL NVARCHAR(MAX) 
     DECLARE @ResultCode INT --1 -> good; 0 -> Fail 

     SELECT @ResultCode = 1 

     SET @SQL = 'CREATE Table ##' + @i_Tablename + '(
         ID INT IDENTITY(1,1) PRIMARY KEY, 
      Username VARCHAR(25) NOT NULL, 
      Message VARCHAR(MAX) NOT NULL, 
      Font VARCHAR(100) NOT NULL, 
      ForeColor INT NOT NULL, 
      BGColor INT NOT NULL, 
      Date DATETIME DEFAULT GETDATE())' 
     EXECUTE sp_sqlexec @SQL 

     INSERT INTO Chatlist VALUES(@i_Tablename) 

     IF @@error <> 0 
     BEGIN 
     SELECT @ResultCode = 0 
     END 
     RETURN @ResultCode 
    END 

这也是我如何调用C#中的程序:

DB.sp_CreateTempTable(Chatname); 

正在执行的程序IST的resultCode为是确定的,它使在插入表Chatlist,但无不是Temptable ....

回答

1
+0

我在Management Studio中创建了TempTables,然后断开连接并重新连接,TempTables仍然存在... –

+0

@FürstdesWahnsinns:SSMS通常创建两个到数据库的连接。一个用于左侧的treeview,另一个用于查询本身。也许这就解释了为什么表没有被删除? – spender

+0

哦,我不知道。是的,这解释了为什么表格没有被删除。 –