|
|
|
Не скриптуется схема для таблиц, на которые указывает ключ
|
|||
|---|---|---|---|
|
#18+
В общем пытаюсь заскриптовать базу посредством Powershell. Ниже скрипт для ключей: #DECLARE TIMESTAMP FOR THE FILES $timestamp = Get-Date -Format yyyy-MM-dd #SCRIPT SL SQLSERVER:\SQL\'MyServer'\DEFAULT\Databases\'MyDB'\Tables $so = new-object Microsoft.SqlServer.Management.Smo.ScriptingOptions $so.IncludeIfNotExists = 1 $so.SchemaQualify = 1 $so.SchemaQualifyForeignKeysReferences = 1 $so.ScriptSchema = 1 dir | foreach {$_.ForeignKeys} | foreach {$_.Script()} > "Z:\MyDB\03_FKs $timestamp .sql" На выходе получается следующее: ALTER TABLE [MySchema].[MyTable1] WITH CHECK ADD CONSTRAINT [FK_MyTable1_MyTable2_ID] FOREIGN KEY([ID]) REFERENCES [MyTable2] ([ID]) ON DELETE CASCADE А должно быть: ALTER TABLE [MySchema].[MyTable1] WITH CHECK ADD CONSTRAINT [FK_MyTable1_MyTable2_ID] FOREIGN KEY([ID]) REFERENCES [MySchema] .[MyTable2] ([ID]) ON DELETE CASCADE Естественно, если схема не "dbo", то FK не создается без указания правильной схемы. Работает прекрасно на SQL Server 2012, но не работает на SQL Server 2008 R2 SP2, даже CU5 поставил, один хрен. Как это можно обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 08:07 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38249819&tid=1341823]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 388ms |

| 0 / 0 |
