Ժող կօգնե՞ք, երբ ուզում եմ նոր database ավելացնեմ այ սենց սխալա տալիս.
"Разрешение CREATE DATABASE запрещено в базе данных master"
Հ.Գ. SQL -ը նոր եմ ինստալլ արել: Մտածում եմ նաստրոյկեքի մեջ մի բան էն չի:
Ժող կօգնե՞ք, երբ ուզում եմ նոր database ավելացնեմ այ սենց սխալա տալիս.
"Разрешение CREATE DATABASE запрещено в базе данных master"
Հ.Գ. SQL -ը նոր եմ ինստալլ արել: Մտածում եմ նաստրոյկեքի մեջ մի բան էն չի:
Ի՞նչ SQL ա: MySQL, MSSQL թե՞ ուրիշ:
Եթե SQL Server է, այ սա կարդա, կօգնի:
Վերջին խմբագրող՝ ArmSOAD: 01.05.2011, 18:30:
SQL Server User Permissions.jpgSQL Server User Permissions.jpgԵրկու տարբերակ կա` գործող բազայի համար և բոլոր նոր ստեղծվողների համար
(նկարներով կցված են)
Valentina (02.05.2011)
Դե բնական է
MIcrosoft-ի շատ արտադրանք լինում է վերջնականապես կարգաբերել միայն համակարգային ադմինիստրատոր օգտագործողով: Որոշ դեպքերում նույնիսկ ադմինիստրատորի իրավասություններով օժտված օգտագործողւ չի կարողանում կարգաբերումներ կատարել![]()
Valentina (02.05.2011)
Ժողովուրդ մի քիչ բար հարց տամ
Ունեմ 2 աղյուսակ, որոնց պարունակությունները ռելացիոն կապված են (տես նկար)
Խնդիրը հետևյալն է.
Ընտրել առաջին աղյուսակից այն տողերը, որոնք բացակայում են 2-րդ աղյուսակում
Ոչ մի կերպ արագագործ հարցում չեմ կարողանում կազմել Firebird-ում
Մի բան գրել եմ, բայց տողերի մեծ քանակի դեպքում (միլիոնից անցնում են 2 աղյուսակներինն էլ)
ահռելի մեծ ժամանակ է ծախսվում, մանավանդ թույլ մեքենայի վրա
Գրածս հետևյան է.
Select * From Table1
Left Join Table2 on (Table1.ID=Table2.TABLE1ID)
Where Table1.ID<>Table2.TABLE1ID
Եթե կան լավ առաջարկներ, խնդրում եմ կիսվեք
կանխավ շնորհակալ եմ
չէ նույնը չի,
left outer join-ի դեպքում ձախից միացնում ա, բոլոր տողերը, անկախ նրանից, կան թե չկան:
Օրինակ
T1.ID T1.TEXT T2.ID T2.T1ID T2.TEXT
1 a 1 1 aa
1 a 2 1 ab
2 b
3 c 3 3 ca
3 c 4 3 cb
4 d
սովորական Join-ի (INNER JOIN) ստացվում է հետևյալը`
T1.ID T1.TEXT T2.ID T2.T1ID T2.TEXT
1 a 1 1 aa
1 a 2 1 ab
3 c 3 3 ca
3 c 4 3 cb
Ինդեքսները դրված են բոլոր բանալի հանդիսացող սյուների, ինչպես նաև "ծնող" բանալի սյուների վրա
Oracl-ում կա սենց տարբերակ`
Select * From Table1
Left Join Table2 on (Table1.ID EXPECT Table2.TABLE1ID)
Եթե չեմ սխալվում (սինտաքսիսը չեմ վերանայել, արագ գրեցի, վաղուց Oracl-ով չեմ զբաղվում),
նույնը արդեն կա նաև SQL Server 2008-ում,
Բայց Firebird/Interbase-ում չկա
Կարելի է գրել նաև այսպես`
Select * From Table1
Where Table1.ID NOT IN (SELECT Table2TABLE1ID From Table2)
Սակայն հարցման կատարման պլանի կառուցման և հարցման կատարման մաթեմատիկական և պրոցեսորային հաշվարկների տեսանկյունից նույնն է տալիս
հարցը այն է, որ վերադարձվեն այն տողերը, որոնք 2-ՐԴ ԱՂՅՈՒՍԱԿՈՒՄ ՉԿԱՆ` ենթատող չունեն:
T1.ID T1.TEXT T2.ID T2.T1ID T2.TEXT
2 b
4 d
Հա ճիշտ ա նույնը չի լավ չէի նկատել որ <> ես դրել պայմանի մեջ. մտածել էի = ես դրել: Բայց էս քո գրածով ընդհանրապես ոչ մի տող չի գա
որովհետև մի հատ գրել ես «on (Table1.ID=Table2.TABLE1ID)» հետո էլ գրել ես «Where Table1.ID<>Table2.TABLE1ID», որ էտ նույն տողերը իրար հավասար չլինենԿոդ:Select * From Table1 Left Join Table2 on (Table1.ID=Table2.TABLE1ID) Where Table1.ID<>Table2.TABLE1ID
Եթե outer join արած լինեիր էտ դեպքում քո ասածը կվերադարձներ:
իմ կարծիքով ամենաարագը պիտի որ սա լինի
Join սենց թե նենց պիտի անես դրանից չես փախնի, իսկ where-ն էլ սրանից օպտիմալ ինձ թվում ա դժվար ա գրել: Բայց եթե մի ուրիշ խելքին մոտ բան մոգոնես ասա:Կոդ:SELECT Table1.* FROM Table1 LEFT OUTER JOIN Table2 ON (Table1.ID=Table2.TABLE1ID) WHERE Table2.ID IS NULL
Հա էտ where-ի սյունյակը պիտի նենց սյունյակ վերցնես որ null չի լինում օրինակ primary key-ն: Վերադարձվող ինֆոյի ծավալն էլ ինչքան կարող ես փոքրացրու, կոնկրետ ես վերցրել եմ առաջին աղյուսակի սյուները: Մեծ միլիոնանոց ռեզալսեթերի դեպքում էական տարբերություն ա տալիս:
Այս պահին թեմայում են 1 հոգի. (0 անդամ և 1 հյուր)
Էջանիշներ