LINQ TO SQL,存储过程不会创建临时表
本文关键字:创建 临时表 存储过程 TO SQL LINQ | 更新日期: 2023-09-27 18:36:43
我正在通过Web服务编写聊天代码,运行SQL Express Server。我在Visual Studio 2010上使用C#。
我有一个应该创建一个临时表的 sproc。当我在管理工作室中执行该过程时,它会创建一个临时表。但是当我在 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);
正在执行的过程,结果代码是可以的,它使插入表聊天列表,但没有临时表。
全局临时表有两个数字符号 (##) 作为其名称的第一个字符;创建后,任何用户都可以看到这些字符;当引用该表的所有用户都与 SQL Server 实例断开连接时,它们将被删除。
我想SQL Server正在删除你的表。如果你想从其他地方引用它,你不应该让它成为临时的。