使用 SqlCommand.ExecuteNonQuery() 创建#temp table
Creating #temp table using SqlCommand.ExecuteNonQuery()
您好,我正在尝试使用 SqlCommand.ExecuteNonQuery 创建一个#temp table。当我执行非查询时没有发生错误,但也没有创建 table 。如果我尝试创建一个普通的 table 它工作正常。如何使用 C# 的 SqlCommand Class 创建 #temp table。
有效的查询:
string createTempTable = $@"CREATE TABLE [dbo].[Holdings](
[Fund] [varchar](25) NULL,
[PercentFund] [float] NULL,
[CommittedCapital] [float] NULL,
[DryPowder] [float] NULL,
[SDCashBalance] [float] NULL,
[PendingTrades] [float] NULL,
[PendingCapital] [float] NULL,
[MgmtFee] [float] NULL,
[AdjustedCash] [float] NULL,
[AsOfDate] [datetime] NULL
);";
//SqlCommand cmd = new SqlCommand(createTempTable, conn);
//cmd.ExecuteNonQuery();
SQL.NonQuery(createTempTable, dbName, serverName, false, 300);
public static void NonQuery(string query,
string databaseName = "MyDataBase",
string serverAddress = "MYServerAddress",
bool useServiceAcct = false,
int commandTimeout = 30)
{
string connString = GetConnectionString(serverAddress, databaseName, useServiceAcct);
using (SqlConnection sqlConn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand(query, sqlConn))
{
sqlConn.Open();
cmd.CommandTimeout = commandTimeout;
cmd.ExecuteNonQuery();
}
}
似乎不起作用但未给出错误的查询:
string createTempTable = $@"CREATE TABLE [dbo].[#Holdings](
[Fund] [varchar](25) NULL,
[PercentFund] [float] NULL,
[CommittedCapital] [float] NULL,
[DryPowder] [float] NULL,
[SDCashBalance] [float] NULL,
[PendingTrades] [float] NULL,
[PendingCapital] [float] NULL,
[MgmtFee] [float] NULL,
[AdjustedCash] [float] NULL,
[AsOfDate] [datetime] NULL
);";
//SqlCommand cmd = new SqlCommand(createTempTable, conn);
//cmd.ExecuteNonQuery();
SQL.NonQuery(createTempTable, dbName, serverName, false, 300);
正如@jonesopolis 在评论中指出的那样,table 会在您关闭连接时消失。如果您正在尝试创建一个可供另一个连接使用的临时文件 table,那么您可以使用带有双井号的全局临时文件:##Holdings
。对两者的讨论很好:Local vs Global SQL Server Temporary Tables.
您好,我正在尝试使用 SqlCommand.ExecuteNonQuery 创建一个#temp table。当我执行非查询时没有发生错误,但也没有创建 table 。如果我尝试创建一个普通的 table 它工作正常。如何使用 C# 的 SqlCommand Class 创建 #temp table。
有效的查询:
string createTempTable = $@"CREATE TABLE [dbo].[Holdings](
[Fund] [varchar](25) NULL,
[PercentFund] [float] NULL,
[CommittedCapital] [float] NULL,
[DryPowder] [float] NULL,
[SDCashBalance] [float] NULL,
[PendingTrades] [float] NULL,
[PendingCapital] [float] NULL,
[MgmtFee] [float] NULL,
[AdjustedCash] [float] NULL,
[AsOfDate] [datetime] NULL
);";
//SqlCommand cmd = new SqlCommand(createTempTable, conn);
//cmd.ExecuteNonQuery();
SQL.NonQuery(createTempTable, dbName, serverName, false, 300);
public static void NonQuery(string query,
string databaseName = "MyDataBase",
string serverAddress = "MYServerAddress",
bool useServiceAcct = false,
int commandTimeout = 30)
{
string connString = GetConnectionString(serverAddress, databaseName, useServiceAcct);
using (SqlConnection sqlConn = new SqlConnection(connString))
using (SqlCommand cmd = new SqlCommand(query, sqlConn))
{
sqlConn.Open();
cmd.CommandTimeout = commandTimeout;
cmd.ExecuteNonQuery();
}
}
似乎不起作用但未给出错误的查询:
string createTempTable = $@"CREATE TABLE [dbo].[#Holdings](
[Fund] [varchar](25) NULL,
[PercentFund] [float] NULL,
[CommittedCapital] [float] NULL,
[DryPowder] [float] NULL,
[SDCashBalance] [float] NULL,
[PendingTrades] [float] NULL,
[PendingCapital] [float] NULL,
[MgmtFee] [float] NULL,
[AdjustedCash] [float] NULL,
[AsOfDate] [datetime] NULL
);";
//SqlCommand cmd = new SqlCommand(createTempTable, conn);
//cmd.ExecuteNonQuery();
SQL.NonQuery(createTempTable, dbName, serverName, false, 300);
正如@jonesopolis 在评论中指出的那样,table 会在您关闭连接时消失。如果您正在尝试创建一个可供另一个连接使用的临时文件 table,那么您可以使用带有双井号的全局临时文件:##Holdings
。对两者的讨论很好:Local vs Global SQL Server Temporary Tables.