MSSQL 2005 Hakkinda bir takim sorular..
MSSQL 2005 Hakkinda bir takim sorular..
Merhaba,
Yaklasik 2 - 2,5 senedir MSSQL 2000 ile calisan bir uygulama gelistiriyorum ve projemi 2005'e gecirmeyi dusunuyorum.
Bildiginiz uzere bir sonraki versionlar hep geriye uyumlu calismaktadir, ancak yine de ben sormak istiyorum..
1. 2005 kurduktan sonra, 2000 veritabani dosyami (MDF) 2005'e direk attach yapabiliyorum ve aynen 2000 de kullandigim gibi calistirabiliyorum dogru mu ? (Sorunun cevabi %99 evet olmasina ragmen yine de sormam gerekiyor.
2. 2005de Row level triggering ozelligi eklendimi? Yoksa hala state level olarak mi devam etmekte? Ek olarak Before triggeri eklendimi?
3. Piyasadaki firmalar genellikle hangi sql versionunu kullaniyor. 2005'e tasidigimda projemi, 2000 de gelistiriyormus gibi yeni ozellikleri kullanmazsam, 2000 serverli firmalar programimi calistirabilirmi? Daha dogrusu veritabanimi sorunsuz kullanabilirler mi?
Ilginiz icin simdiden cok tesekkur ederim, herkese iyi calismalar.
Yaklasik 2 - 2,5 senedir MSSQL 2000 ile calisan bir uygulama gelistiriyorum ve projemi 2005'e gecirmeyi dusunuyorum.
Bildiginiz uzere bir sonraki versionlar hep geriye uyumlu calismaktadir, ancak yine de ben sormak istiyorum..
1. 2005 kurduktan sonra, 2000 veritabani dosyami (MDF) 2005'e direk attach yapabiliyorum ve aynen 2000 de kullandigim gibi calistirabiliyorum dogru mu ? (Sorunun cevabi %99 evet olmasina ragmen yine de sormam gerekiyor.
2. 2005de Row level triggering ozelligi eklendimi? Yoksa hala state level olarak mi devam etmekte? Ek olarak Before triggeri eklendimi?
3. Piyasadaki firmalar genellikle hangi sql versionunu kullaniyor. 2005'e tasidigimda projemi, 2000 de gelistiriyormus gibi yeni ozellikleri kullanmazsam, 2000 serverli firmalar programimi calistirabilirmi? Daha dogrusu veritabanimi sorunsuz kullanabilirler mi?
Ilginiz icin simdiden cok tesekkur ederim, herkese iyi calismalar.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Merhaba, her iki arkadasima cevap verdigi icin tesekkur ediyorum.
Aslangeri arkadasim, Instead of triggeri bildigin gibi 2000 de de mevcuttur. Ancak Instead of triggeri, before triggeri degil, adindan anlasildigi gibi yapilan bir islemi (INSERT, UPDATE DELETE) iptal edip yerine kendi tanimladigi bir islemi yapan triggerdir. Bu da yanlis kullanildiginda maalesef bazen yanlis sonuclara sebep oluyor.
Ilginiz icin tekrardan tesekkur ederim, ben de konuya hakim olan arkadaslardan cevaplari sabirsizlikla bekliyorum
Kolay gelsin.
Aslangeri arkadasim, Instead of triggeri bildigin gibi 2000 de de mevcuttur. Ancak Instead of triggeri, before triggeri degil, adindan anlasildigi gibi yapilan bir islemi (INSERT, UPDATE DELETE) iptal edip yerine kendi tanimladigi bir islemi yapan triggerdir. Bu da yanlis kullanildiginda maalesef bazen yanlis sonuclara sebep oluyor.
Ilginiz icin tekrardan tesekkur ederim, ben de konuya hakim olan arkadaslardan cevaplari sabirsizlikla bekliyorum

Kolay gelsin.
sql 2000 i bildiğimide nerden çıkardın.Glen yazdı: Aslangeri arkadasim, Instead of triggeri bildigin gibi 2000 de de mevcuttur.

sql2005 i kullanmaya başlayalı 3 ay oldu. instead of u before triger olarak kullanıyorum (dum). Yeni bişeyler daha öğrenmiş olduk. Teşekkürler...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Bilmedigini biliyordum, nezaketen demistimaslangeri yazdı:sql 2000 i bildiğimide nerden çıkardın.Glen yazdı: Aslangeri arkadasim, Instead of triggeri bildigin gibi 2000 de de mevcuttur.![]()
sql2005 i kullanmaya başlayalı 3 ay oldu. instead of u before triger olarak kullanıyorum (dum). Yeni bişeyler daha öğrenmiş olduk. Teşekkürler...


Kolay gelsin.
http://download.microsoft.com/download/ ... _Guide.pdf
http://www.microsoft.com/sql/prodinfo/o ... r2005.mspx
1. evet attach yapabiliyosun, ama dikkat etmen gereken (bildiğim kadarı ile yanlışım varsa düzeltin ltf) o database ' de 2000 uyumlu oluyor, yani yeni özellikleri kullanamıyorsun.
2. Yine bildiğim kadarı ile state level olarak devam ediyor, before trigeri hala yok.
3. Ben öyle yapıyorum sqlclni ile 2000 database'ine de erişebiliyosun zaten.
Ek olarak 2005'in performansı 2000 ' e göre oldukça iyi.
http://www.microsoft.com/sql/prodinfo/o ... r2005.mspx
1. evet attach yapabiliyosun, ama dikkat etmen gereken (bildiğim kadarı ile yanlışım varsa düzeltin ltf) o database ' de 2000 uyumlu oluyor, yani yeni özellikleri kullanamıyorsun.
2. Yine bildiğim kadarı ile state level olarak devam ediyor, before trigeri hala yok.
3. Ben öyle yapıyorum sqlclni ile 2000 database'ine de erişebiliyosun zaten.
Ek olarak 2005'in performansı 2000 ' e göre oldukça iyi.
Syntax
Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
<dml_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE, or UPDATE STATISTICS statement (DDL Trigger)
CREATE TRIGGER trigger_name
ON { ALL SERVER | DATABASE }
[ WITH <ddl_trigger_option> [ ,...n ] ]
{ FOR | AFTER } { event_type | event_group } [ ,...n ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME < method specifier > [ ; ] }
<ddl_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
Trigger on a LOGON event (Logon Trigger)
CREATE TRIGGER trigger_name
ON ALL SERVER
[ WITH <logon_trigger_option> [ ,...n ] ]
{ FOR | AFTER } LOGON
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier> [ ; ] }
<logon_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
Arguments
schema_name
Is the name of the schema to which a DML trigger belongs. DML triggers are scoped to the schema of the table or view on which they are created. schema_name cannot be specified for DDL or logon triggers.
trigger_name
Is the name of the trigger. A trigger_name must comply with the rules for identifiers, with the exception that trigger_name cannot start with # or ##.
table | view
Is the table or view on which the DML trigger is executed and is sometimes referred to as the trigger table or trigger view. Specifying the fully qualified name of the table or view is optional. A view can be referenced only by an INSTEAD OF trigger. DML triggers cannot be defined on local or global temporary tables.
DATABASE
Applies the scope of a DDL trigger to the current database. If specified, the trigger fires whenever event_type or event_group occurs in the current database.
ALL SERVER
Applies the scope of a DDL or logon trigger to the current server. If specified, the trigger fires whenever event_type or event_group occurs anywhere in the current server.
WITH ENCRYPTION
Obfuscates the text of the CREATE TRIGGER statement. Using WITH ENCRYPTION prevents the trigger from being published as part of SQL Server replication. WITH ENCRYPTION cannot be specified for CLR triggers.
EXECUTE AS
Specifies the security context under which the trigger is executed. Enables you to control which user account the instance of SQL Server uses to validate permissions on any database objects that are referenced by the trigger.
For more information, seeEXECUTE AS Clause (Transact-SQL).
FOR | AFTER
AFTER specifies that the trigger is fired only when all operations specified in the triggering SQL statement have executed successfully. All referential cascade actions and constraint checks also must succeed before this trigger fires.
AFTER is the default when FOR is the only keyword specified.
AFTER triggers cannot be defined on views.
INSTEAD OF
Specifies that the DML trigger is executed instead of the triggering SQL statement, therefore, overriding the actions of the triggering statements. INSTEAD OF cannot be specified for DDL or logon triggers.
At most, one INSTEAD OF trigger per INSERT, UPDATE, or DELETE statement can be defined on a table or view. However, you can define views on views where each view has its own INSTEAD OF trigger.
INSTEAD OF triggers are not allowed on updatable views that use WITH CHECK OPTION. SQL Server raises an error when an INSTEAD OF trigger is added to an updatable view WITH CHECK OPTION specified. The user must remove that option by using ALTER VIEW before defining the INSTEAD OF trigger.
{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }
Specifies the data modification statements that activate the DML trigger when it is tried against this table or view. At least one option must be specified. Any combination of these options in any order is allowed in the trigger definition.
For INSTEAD OF triggers, the DELETE option is not allowed on tables that have a referential relationship specifying a cascade action ON DELETE. Similarly, the UPDATE option is not allowed on tables that have a referential relationship specifying a cascade action ON UPDATE.
event_type
Is the name of a Transact-SQL language event that, after execution, causes a DDL trigger to fire. Events that are valid for use in DDL triggers are listed in DDL Events for Use with DDL Triggers.
event_group
Is the name of a predefined grouping of Transact-SQL language events. The DDL trigger fires after execution of any Transact-SQL language event that belongs to event_group. Event groups that are valid for use in DDL triggers are listed in Event Groups for Use with DDL Triggers.
After the CREATE TRIGGER has finished running, event_group also acts as a macro by adding the event types it covers to the sys.trigger_events catalog view.
WITH APPEND
Specifies that an additional trigger of an existing type should be added. Use of this optional clause is required only when the compatibility level is 65 or lower. If the compatibility level is 70 or higher, the WITH APPEND clause is not required to add an additional trigger of an existing type. This is the default behavior of CREATE TRIGGER with the compatibility level setting of 70 or higher. For more information, see sp_dbcmptlevel (Transact-SQL).
WITH APPEND cannot be used with INSTEAD OF triggers or if AFTER trigger is explicitly stated. WITH APPEND can be used only when FOR is specified, without INSTEAD OF or AFTER, for backward compatibility reasons. WITH APPEND cannot be specified if EXTERNAL NAME is specified (that is, if the trigger is a CLR trigger).
Arkadasim verdigin cevap icin ve herseyden otesi ilgilendigin icin cok tesekkur ederim. Aklimdaki bir cok soru isaretine cevap getirmis oldun.
Ancak 3. cevabini pek anlayamadim.
sqlclni dedigin tam olarak nedir? Google'da arattim ancak pek tatmin edici sonuclar bulamadim o yuzden sormak istedim..
Tekrardan tesekkur ederim. Iyi calismalar
Ancak 3. cevabini pek anlayamadim.
sqlclni dedigin tam olarak nedir? Google'da arattim ancak pek tatmin edici sonuclar bulamadim o yuzden sormak istedim..
Tekrardan tesekkur ederim. Iyi calismalar
2000 deki veritabanını 2005e attach ettiğinde veritabanı 2000 uyumlu olarak çalışır. Bu durumda 2005 özelliklerini kullanamazsın. Veritabanı özelliklerinden Options->Compatibility Level özelliğini 2005 e çekerek veritabanında 2005 özelliklerini kullanmaya başlayabilirsin. Ancak bu özellikleri kullanmaya başladığında veritabanını 2000 e tekrar çekemezsin.
Verdigin cevap icin cok tesekkur ederim arkadasim. Sorumun ozeti buydu sanirimiason yazdı:2000 deki veritabanını 2005e attach ettiğinde veritabanı 2000 uyumlu olarak çalışır. Bu durumda 2005 özelliklerini kullanamazsın. Veritabanı özelliklerinden Options->Compatibility Level özelliğini 2005 e çekerek veritabanında 2005 özelliklerini kullanmaya başlayabilirsin. Ancak bu özellikleri kullanmaya başladığında veritabanını 2000 e tekrar çekemezsin.

Iyi calismalar, kolay gelsin.
MErhaba,
arkadaşlar mdf dosyalarını hangi programla oluşturuyorsunuz? bunun için kullanılan tool veya uygulama varmı? birde oluşturduğumuz tabloyu nasıl sqlexpress'e bağlayacağız teşekkürler iyi çalışmalar?
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Ücretsiz paketler içinden SQL Manager 2005 programı bu iş için biçilmiş kaftan olabilir.
http://sqlmanager.net/products/mssql/manager/
veya
http://www.sqlmanager.net/
bağlantılarını incele.
Oluşan DB otomatik olarak SQL'e kayıtlıdır fakat taşınan dosya için sp_attach_db komutunu kullanman gerekiyor.
sp_attach_db 'DB_ADI' , 'c:\DB.MDF' , 'c:\DB_LOG.LDF'
gibi.
http://sqlmanager.net/products/mssql/manager/
veya
http://www.sqlmanager.net/
bağlantılarını incele.
Oluşan DB otomatik olarak SQL'e kayıtlıdır fakat taşınan dosya için sp_attach_db komutunu kullanman gerekiyor.
sp_attach_db 'DB_ADI' , 'c:\DB.MDF' , 'c:\DB_LOG.LDF'
gibi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Program ücretli olan ekstra özellikleri var fakat muhtemelen ihtiyacın olmayacak kadar ileri özellik bunlar. Bu paketin ücretsiz hali tüm ihtiyaçlarımı karşılar durumda. SQLExpress'e bağlamaktan kasıt dosyayı veritabanına kayıt etmek ise oluşturulan veritabanı zaten sql'e bağlıdır (kayıtlıdır) . Başka bilgisayara taşınan dosyaları kayıt etmeyi soruyorsan sp_attach_db'ye göz atman gerekiyor. Tabi sisteminde SQLExpress'ten başka SQL Server yüklü ve veri tabanı burada kayıtlı ise aynı anda SQLExpress'e kayıt edemezsin. Önce kayıtlı olduğu SQL'den ap_detach_db ile çıkartman gerekiyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .