gpt4 book ai didi

sql-server - 无法访问从代码创建的临时表

转载 作者:行者123 更新时间:2023-12-02 07:01:55 24 4
gpt4 key购买 nike

我在使用临时表时遇到了一个非常奇怪的问题。我在代码中创建了一个临时表,它显示在 MSSQL 中的 tempdb.sys.tables 下,但如果我尝试从中选择,我会得到一个

对象名称“#Update”无效。错误

如果我将创建临时表 sql 直接从我的代码中剪切并粘贴到 mssql 管理器中并运行它,它将创建临时表,我可以从中进行选择。然后它将在 tempdb.sys.tables 中显示两个相同的临时表。

也许我忽略了某些东西,但这似乎很奇怪。

using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();

//Execute the command to make a temp table
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = "create table #UpdatePOS (Store_ID nvarchar(50), POSItem_Id nvarchar(50), POSSalesDate datetime, LastModifiedWhen datetime, UpdateResult bit, QTY decimal(18,0));";
cmd.ExecuteNonQuery();
}

}

谢谢!

最佳答案

本地临时表(以单个 # 符号为前缀)在创建它的连接断开后消失。如果您使用一个 SqlConnection 对象创建该表并尝试通过另一个对象访问它,您可能希望使用全局临时表(以## 为前缀),但因为在您断开连接后该表仍然存在在运行 SQL 之前,您必须截断所有数据。

更多阅读:http://technet.microsoft.com/en-us/library/ms186986%28v=sql.105%29.aspx

关于sql-server - 无法访问从代码创建的临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com