LINQ TO SQL,存储过程不会创建临时表

时间:2013-10-23 09:53:02

标签: c# sql linq stored-procedures temp-tables

我正在通过运行SQL Express Server的Webservice编写聊天。 我在Visual Studio 2010上使用C#。

我有一个应该创建Temp Table的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);

程序正在执行,结果代码正常,它使表格中的插入名单,但没有TempTable ....