我正在通过 Web 服务编写聊天,运行 SQL Express 服务器。我在 Visual Studio 2010 上使用 C#。
我有一个应该创建一个临时表的存储过程。当我在 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....