SQL Server CE 3.5 оптимизация
2 отговора
0 прегледа
SQL Server CE 3.5 оптимизация
Налага ми се да правя внушителни за мащабите на PocketPC количества INSERT. Въпросите които ме терзаят са два:
1) Има ли еквивалент на BEGIN ... END, т.е. мога ли да пусна N на брой INSERT заявки наведнъж
2) Има ли вариант да използвам @@IDENTITY след INSERT в една заявка
Засега всичките ми търсения в сайта на M$ и където още подсказа бай Гугъл са неуспешни и обезкуражаващи... Та ще се радвам на едно приятелско рамо, на което ако не друго, да си поплача горчиво...
чети и дишай по-леко
1) Има ли еквивалент на BEGIN ... END, т.е. мога ли да пусна N на брой INSERT заявки наведнъж
2) Има ли вариант да използвам @@IDENTITY след INSERT в една заявка
Засега всичките ми търсения в сайта на M$ и където още подсказа бай Гугъл са неуспешни и обезкуражаващи... Та ще се радвам на едно приятелско рамо, на което ако не друго, да си поплача горчиво...
чети и дишай по-леко
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 съм сигурен че ще намериш решение за повечето проблеми.
Разбира се, че можеш, но не и в 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 съм сигурен че ще намериш решение за повечето проблеми.
Re: SQL Server CE 3.5 оптимизация
Благодаря ти за отговора. Честно казано бях забравил че съм пуснал въпрос, а и не се надявах някой да отговори.
Намерих полезна статия по темата: [линк]
Още не съм изпробвал лично нещата, но изглежда чудесно.
Благодаря отново, ще се реванширам при нужда.
чети и дишай по-леко
Намерих полезна статия по темата: [линк]
Още не съм изпробвал лично нещата, но изглежда чудесно.
Благодаря отново, ще се реванширам при нужда.
чети и дишай по-леко