ALTER PROC spTransferDat
@TableName nvarchar(50)
AS
EXEC('SELECT * FROM ClientGroups INTO [' + @TableName + '] ');
public void SPROC_ExecutionsTransferData()
{
string tablename = cboNetChannel.SelectedItem.ToString();
SqlConnection sqlConnectionCmdString = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\database\ClientRegit.mdf;Integrated Security=True;User Instance=True");
//Properly just transfer data to already existing table
string Command = "spTransferDat" + "'" + tablename + "'";
SqlCommand sqlCommand = new SqlCommand(Command, sqlConnectionCmdString);
sqlConnectionCmdString.Open();
sqlCommand.ExecuteNonQuery();
sqlConnectionCmdString.Close();
}
public void SPROC_ExecutionsTableNaming()
{
try
{
string tablename = cboNetChannel.SelectedItem.ToString();
SqlConnection sqlConnectionCmdString = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Rick\Documents\Visual Studio 2010\Projects\Server\database\ClientRegit.mdf;Integrated Security=True;User Instance=True");
//Properly Defines the string for naming the table according to the systems naming scheme
string renameCommand = "EXEC sp_rename 'NetworkAccount', " + "'" + tablename + "'";
SqlCommand sqlRenameCommand = new SqlCommand(renameCommand, sqlConnectionCmdString);
sqlConnectionCmdString.Open();
sqlRenameCommand.ExecuteNonQuery();
sqlConnectionCmdString.Close();
}
catch(Exception myex)
{
DialogResult QAnswer = MessageBox.Show("Table already exist, Do you want to just add data to table", "Data Management", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
//Check for command
if (QAnswer == DialogResult.Yes)
{
//transfer the data to the correct table if table already Exist
SPROC_ExecutionsTransferData();
}
else if (QAnswer == DialogResult.No)
{
this.Close();
}
}
}
所有的SQL语句都会作为错误返回,SQL不允许自然地重复表,所以我试图在尝试错误处理时调用这个SQL过程来向已经存在的表添加数据,如果表不存在创建。使用SQL来检查表是否存在,如果不存在,则从不同的表中插入数据?
所以会发生什么是我复制一张表,然后用sp_rename重命名表,如果表不存在这个工作,但如果它存在它会出错,所以对错误我想插入所有的数据一个表到另一个表,但由于某种原因,它不工作的SQL过程一直说INTO语句是一个语句错误。需要帮忙!!感谢
你需要一个纯sql的答案?或者你可以通过.net来做到这一点吗? – Botonomous
@shawn所以确认 - 如果表不存在 - 你想做'SELECT INTO',如果表退出 - 你想做'INSERT INTO'? –
我只是试图从表中选择*到另一个表中我已经有能力检查表是否存在自然发生。所以我只需要将此表中的所有数据添加到新指定的表中。但我需要告诉它表名,所以我使用一个参数来捕获表。 – shawn