SQL Server CE 3.5 оптимизация

2 отговора 0 прегледа
#1

SQL Server CE 3.5 оптимизация

Налага ми се да правя внушителни за мащабите на PocketPC количества INSERT. Въпросите които ме терзаят са два:

1) Има ли еквивалент на BEGIN ... END, т.е. мога ли да пусна N на брой INSERT заявки наведнъж
2) Има ли вариант да използвам @@IDENTITY след INSERT в една заявка

Засега всичките ми търсения в сайта на M$ и където още подсказа бай Гугъл са неуспешни и обезкуражаващи... Та ще се радвам на едно приятелско рамо, на което ако не друго, да си поплача горчиво...

чети и дишай по-леко
Отговор
в отговор на Pechenia #2

Re: SQL Server CE 3.5 оптимизация

мога ли да пусна N на брой INSERT заявки наведнъж .

Разбира се, че можеш, но не и в batch statement, тъй като sql server ce 3.5 не поддържа batch statement-и. Това обаче не ти забранява в рамките на един connection да направиш 2 или повече insert statement-и, като генерираш нови sql commands.
T.e. не можеш да направиш следното:
insert into table1 (...) values (...); insert into table2 (...) values (...).

Но пък можеш да направиш следното:
SqlConnection.Open();
SqlCommand comm1 = new SqlCommand(...);
comm1.CommandText = "insert into table1 (...) values (...)";
comm1.ExecuteNoneQuery();
comm1.CommandText = "insert into table2 (...) values (...)";



Има ли вариант да използвам @@IDENTITY след INSERT в една заявка

Тъй като не можеш да пуснеш batch statement не можеш да направиш следното:
INSERT INTO TABLE1 (...) VALUES (...); SELECT @@IDENTITY.

Но можеш отново с нов sql command да вземеш current identity-то след insert-а.

П.П.
Не съм работил със Sql Server CE, но доколкото знам не се поддържат съхранени процедури, тригети, вюта... Ако използваш ADO.NET съм сигурен че ще намериш решение за повечето проблеми.

Отговор
в отговор на Aaron #3

Re: SQL Server CE 3.5 оптимизация

Благодаря ти за отговора. Честно казано бях забравил че съм пуснал въпрос, а и не се надявах някой да отговори.
Намерих полезна статия по темата: [линк]
Още не съм изпробвал лично нещата, но изглежда чудесно.
Благодаря отново, ще се реванширам при нужда.

чети и дишай по-леко
Отговор