MS SQL Server - scripts

9 отговора 607 прегледа
#1

MS SQL Server - scripts

Има ли някаква възможност структурата на база от MS SQL Server (tables, views, sp, triggers) да се изведе в скриптове.

Това се прави с EM, но той не подрежда обектите според зависимостите (dependencies) помежду им, т.e. генерираният скрипт от ЕМ при изпълнение дава грешки за липсващи обекти.

Отговор
в отговор на planik #2

Re: MS SQL Server - scripts

Vizh tova mozhe da ti svar6i rabota

[линк]

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

Re: MS SQL Server - scripts

Благодаря за отговора !

Но мисля, че ни си ми разбрал проблема. Аз не искам да копирам данни (без да съм ползвал bcp, но доколкото знам служи за копиране на данни).

Целта ми е при скриптиране на базата (tables, views and etc.) да получа един script файл,
в който обектите да бъдат подредени според техните зависимости.

Пример :
При скриптиране на Views : във View1 аз мога да ползвам View5, a EM ги подрежда

-- View1 -- например (SELECT * FROM View5)
-- View2
...
-- View5


и при изпълнение на скрипта при създаване на View1 ще ми се даде грешка за липсващо View5.

т.е. търся начин при за подредба :
-- View5
-- View2
...
-- View1 (SELECT * FROM View5)

Отговор
в отговор на planik #4

Re: MS SQL Server - scripts

Znachi ako ima takova neshto edna podobna structura bi mu razkazala igrata...

runni tova

create view a1
as
select * from t1
go

create view a2
as
select * from a1
go

alter view a1
as
select * from a2
go

Zamisli se koe view shte bude purvo v script-a...

A inache kato ideia ako ne polzvash imena na koloni ot edno view kum drugo .. demek ako polzvash select * from a1 mozhe da probvash slednoto ..

1. select 'create view ' + name + ' as select * from users Go ' from sysobjects
where xtype = 'V'
natiskash v Query analizer Ctrl+T i resultata ot zaiavka 1 go runvash.
(taka shte si suzdadesh "Mente" View-ta)
2. zimash scripta koito ti generira EM i go pastevash v Query Analyzer i natiskash Ctrl+H ... i replacevash Create s Alter ...
tova shte te oprai

ako polzvash imena na koloni shte triabva da si poigraesh malko da si generirash zaiavkata koiato ti prai "Mente" view-ta da selectva '' as NameNaColona za da ne ti grumne posle ALter view-to .. ma tova go ostaviam na tebe ...
pocheti malko za sysobjects i syscolumns ....
are uspeh

P.S. - mozhe tova da ne e the best way no mislia che shte ti svurshi rabota ...




Отговор
в отговор на kroky #5

Re: MS SQL Server - scripts

Много ми е интересно, какъв резултат се очаква от изпълнението на
select * from a1

Всъщност изненадан съм, че MS SQL поддържа alter view.
Ако не се лъжа, в SQL92 го няма.

Отговор
в отговор на planik #6

Re: MS SQL Server - scripts

Има специализирани програми за генериране на схемата от БД. Лидерите (според мен) са следните:

[линк]
[линк]
[линк]

С първите две съм работил. Виж на сайтовете може да има някакво демо дето да ти свърши работа.

Ако не, то е хубаво упражнение да си напишеш скрипт за целта.

Отговор
в отговор на NDeu #7

Re: MS SQL Server - scripts

тва че в SQL92 го няма нищо не означава

пък и MS са сложили доста благини в SQL Server-a дето ги няма другаде

Отговор
в отговор на planik #8

Re: MS SQL Server - scripts

Ot select * from a1 se poluchava tova.

Server: Msg 4429, Level 16, State 1, Procedure a2, Line 3
View or function 'a1' contains a self-reference. Views or functions cannot reference themselves directly or indirectly.

a inache ako imate problem s alter view mozhete da polzvate drop view i create view ....

are s zdrave...

Отговор
в отговор на NDeu #9

Re: MS SQL Server - scripts

Че какво му е лошото на alter view? В Oracle пък има create or replace view. Всеки слага добавки за удобства

Наздраве
Отговор
в отговор на Piqndurnik #10

Re: MS SQL Server - scripts

Бе то няма лошо, но съобщението:
View or function 'a1' contains a self-reference
трябва да ти го покаже при alter view, а не да го преглътне мълчаливо, а след това на select * from a1 да реве
Така, че този alter всъщност си е чист replace, но без проверки

Отговор