Nishant.Chauhan80 Ответов: 2

Я хочу создать временную таблицу и вставить данные через процедуру хранения


сэр
i want to create temporary table and  insert data through store procedure and query 


<pre>Alter PROCEDURE  dbo.sp_ExpenMonthWise
(
@schemeno char(20),
@sch_amount nvarchar(max),
@Desciption nvarchar(2000),
@sdate smalldatetime,
@Exp_upto_Premonth nvarchar(max),
@Exp_Upto nvarchar(max),
@Exp_During nvarchar(max),
@ExpUpto nvarchar(max),
@PreMonth varchar(50),
@CurrMonth varchar(50)
)
AS
BEGIN
   IF OBJECT_ID('tempdb..#Temp') IS NOT NULL 
BEGIN 
    DROP TABLE #Temp 
END
   CREATE TABLE #Temp
  (
     TempID  INT IDENTITY(1,1) PRIMARY KEY, schemeno char(20), sch_amount nvarchar(max),Desciption nvarchar(2000),sdate smalldatetime,Exp_upto_Premonth nvarchar(max),

       Exp_Upto nvarchar(max),Exp_During nvarchar(max),ExpUpto nvarchar(max),PreMonth Varchar(50),CurrMonth Varchar(50)
  );
  
	INSERT INTO #Temp(schemeno,sch_amount,Desciption,sdate,Exp_upto_Premonth,Exp_Upto,Exp_During,ExpUpto,PreMonth,CurrMonth) VALUES 
	(@schemeno,@sch_amount,@Desciption,@sdate,@Exp_upto_Premonth,@Exp_Upto,@Exp_During,@ExpUpto,@PreMonth,@CurrMonth)
	 DECLARE @totalRecords INT
     DECLARE @I INT

    SELECT @I = 1
    SELECT @totalRecords = COUNT(TempID) FROM #Temp
    WHILE (@I <= @totalRecords)
     BEGIN
    SELECT * FROM #Temp WHERE TempID = @I
     SELECT @I = @I + 1
     END


 SELECT schemeno, sch_amount, Desciption, sdate, Exp_upto_Premonth,Exp_Upto,Exp_During,ExpUpto,PreMonth,CurrMonth
  FROM #Temp 
    
END;



Вставить код через петлю:-

foreach (DataTable table in Insrtds.Tables)
            {

                foreach (DataRow row in table.Rows)
                {
                    //string monyr = row["monyr"].ToString();
                    //var monyrarr = monyr.ToCharArray();
                    //string finyrr = (monyrarr[4].ToString() + monyrarr[5].ToString());

                    SqlCommand cmd = new SqlCommand("dbo.sp_ExpenMonthWise", con);
                    cmd.CommandType = CommandType.StoredProcedure;  
                    cmd.Parameters.AddWithValue("@schemeno", row["schemeno"]);
                    cmd.Parameters.AddWithValue("@sch_amount", row["sch_amount"]);
                    cmd.Parameters.AddWithValue("@Desciption", row["disp"]);
                    cmd.Parameters.AddWithValue("@sdate", row["schdate"]);
                    cmd.Parameters.AddWithValue("@Exp_upto_Premonth", row["Premonth"]);
                    cmd.Parameters.AddWithValue("@Exp_upto", row["ExpUpto"]);
                    cmd.Parameters.AddWithValue("@Exp_During", row["CurrMonExp"]);
                    cmd.Parameters.AddWithValue("@ExpUpto", row["ExpUptoNow"]);
                    cmd.Parameters.AddWithValue("@PreMonth", PreMonthName);
                    cmd.Parameters.AddWithValue("@CurrMonth", CurrMonthName);
                    cmd.ExecuteNonQuery();


Что я уже пробовал:

i want to create temporary table and  insert data  

2 Ответов

Рейтинг:
20

Praveen_P

Образец запроса

SELECT * INTO #tempEntity  FROM  (SELECT ENTITY_ID,ENTITY_NAME FROM EntityTable)
WHERE ENTITY_ID <= 3


Nishant.Chauhan80

пожалуйста, проверьте мой код

Praveen_P

В чем заключается ошибка, которую вы получаете ?

Nishant.Chauhan80

несколько записей не вставляют временную таблицу через цикл

Santosh kumar Pithani

почему вы вставляете записи в таблицу #temp и используете while?

Nishant.Chauhan80

потому что я хочу создать отчет времени выполнения в новом окне при закрытии отчета, а затем удалить таблицу

Santosh kumar Pithani

хорошо, как вставить все записи и извлечь записи из SP , я имею в виду то, что вы ожидаете от SP?

Praveen_P

Вам нужно изменить логику вставки данных , потому что каждый раз, когда вы удаляете temptable

Santosh kumar Pithani

Привет Нишант, я думаю, что вы пытаетесь вставить массовые записи и выборку одну за другой, поэтому мое предложение-использовать переменную типа таблицы

Nishant.Chauhan80

пожалуйста, пришлите мне пример

Santosh kumar Pithani

сначала создайте тип таблицы как показано ниже EX:

Создайте тип [dbo].[TableType_WebTrafficSocialChannel] AS TABLE( id int identity(1,1),
[Месяц] [дата] ноль,
[name] [varchar](max) NULL,
[Data] [int] NULL
)

-------------------
Создание продукта тр( @поддающийся соблазну TableType_WebTrafficSocialChannel только для чтения)
АС
-- здесь все записи вставляются в TableType_WebTrafficSocialChannel из вашего приложения

--вы знаете, как извлекать записи из цикла while

Рейтинг:
0

OriginalGriff

Если вы ждете разрешения, то считайте, что оно дано: вы можете идти прямо вперед и делать это.

Если это не то, что вам нужно, то начните с Google: создайте временную таблицу и вставьте данные через процедуру хранения - Google Search[^] и попытайтесь уточнить вашу проблему до довольно менее расплывчатого описания. Мы не можем ответить на вопрос, который вы не задаете, и вы не задали нам ни одного вопроса здесь!


Nishant.Chauhan80

пожалуйста, смотрите мой запрос и код

OriginalGriff

И что же?
Что же происходит? Какие-нибудь ошибки? Как вы проверили? Когда вы проверяли?
Мы не можем запустить ваш код - у нас нет доступа к вашим данным или базе данных - поэтому вы должны предоставить нам как можно больше соответствующей информации.

OriginalGriff

Вообще - то, нет- посмотри на свою ИП.

Вы удаляете временную таблицу каждый раз, когда выполняете SP!
Итак, как вы ожидаете, что данные выживут, если каждый раз, когда вы обходите свой цикл, вы удаляете их?