すべてのテーブルの "CREATE"スクリプトを取得します。SQLの管理スタジオで "テーブルの作成"、 "テーブルの作成"スクリプトの操作方法
sp_helptextのようなスクリプトはありますか?
"スクリプトテーブル" - > "テーブルの作成" が選択されている場合、どのようにスクリプトを呼び出すことができますか?
すべてのテーブルの "CREATE"スクリプトを取得します。SQLの管理スタジオで "テーブルの作成"、 "テーブルの作成"スクリプトの操作方法
sp_helptextのようなスクリプトはありますか?
"スクリプトテーブル" - > "テーブルの作成" が選択されている場合、どのようにスクリプトを呼び出すことができますか?
データベースを右クリックして、[タスク] - > [スクリプトの生成]に移動できます。
これは、必要なすべてのスクリプトをスクリプト化する手順を説明します。
あなたは正しいです。スクリプトの生成はこの仕事をうまくやっています。しかし、いくつかの認証の問題のために、私はこのソリューションを使用することはできません。 – maycil
認証の問題は、テーブル定義にアクセスできない場所ですか?そうであれば、テーブルをスクリプト化するツールはありません。ステップ1は、必要なアクセス権を取得するように見えます。 –
Stefanとgbnが提案したものを使用できます。さらに、ur DBの正確なレプリカのスクリプトが必要な場合は、Microsoft SQL Server Database Publishing Wizardをご覧ください。それはVSに組み込まれて来る2008 +
は新しいバージョンがありますか?それはSQL 2008をサポートしていません – maycil
SQL Serverでスクリプトを生成オプションを使用することができます。
Tasks->Generate Scripts
必要に応じてスクリプトを作成できます。
はすでに誰かがこの質問
The best method is Rightclick the database then Tasks->Generate Scripts
に正しい答えを与えるしかし、いくつかの理由で、あなたがメソッドを使用することはできませんので、あなたが指摘されています。
クエリを使用する方法を探しているなら、あなたは以下の方法を取ることができ、それはあなたのテーブルのスキーマを返します
Go
Create Function ShowMyTableData
(
@vsTableName varchar(50)
)
Returns
VarChar(Max)
With ENCRYPTION
Begin
Declare @ScriptCommand varchar(Max)
Select @ScriptCommand =
' Create Table [' + SO.name + '] (' + o.list + ')'
+
(
Case
When TC.Constraint_Name IS NULL
Then ''
Else 'ALTER TABLE ' + SO.Name + ' ADD CONSTRAINT ' +
TC.Constraint_Name + ' PRIMARY KEY ' + ' (' + LEFT(j.List, Len(j.List)-1) + ')'
End
)
From sysobjects As SO
Cross Apply
(
Select
' [' + column_name + '] ' +
data_type +
(
Case data_type
When 'sql_variant'
Then ''
When 'text'
Then ''
When 'decimal'
Then '(' + Cast(numeric_precision_radix As varchar) + ', ' + Cast(numeric_scale As varchar) + ') '
Else Coalesce('(' +
Case
When character_maximum_length = -1
Then 'MAX'
Else Cast(character_maximum_length As VarChar)
End + ')' , ''
)
End
)
+ ' ' +
(
Case
When Exists (
Select id
From syscolumns
Where
(object_name(id) = SO.name)
And
(name = column_name)
And
(columnproperty(id,name,'IsIdentity') = 1)
)
Then 'IDENTITY(' +
Cast(ident_seed(SO.name) As varchar) + ',' +
Cast(ident_incr(SO.name) As varchar) + ')'
Else ''
End
) + ' ' +
(
Case
When IS_NULLABLE = 'No'
Then 'NOT '
Else ''
End
) + 'NULL ' +
(
Case
When information_schema.columns.COLUMN_DEFAULT IS NOT NULL
Then 'DEFAULT ' + information_schema.columns.COLUMN_DEFAULT
ELse ''
End
) + ', '
From information_schema.columns
Where
(table_name = SO.name)
Order by ordinal_position
FOR XML PATH('')) o (list)
Inner Join information_schema.table_constraints As TC On (
(TC.Table_name = SO.Name)
AND
(TC.Constraint_Type = 'PRIMARY KEY')
And
(TC.TABLE_NAME = @vsTableName)
)
Cross Apply
(
Select '[' + Column_Name + '], '
From information_schema.key_column_usage As kcu
Where
(kcu.Constraint_Name = TC.Constraint_Name)
Order By ORDINAL_POSITION
FOR XML PATH('')
) As j (list)
Where
(xtype = 'U')
AND
(Name NOT IN ('dtproperties'))
Return @ScriptCommand
End
あなたは
Select [dbo].ShowMyTableData ('tablename')
延長のようなあなたの関数を呼び出すことができます:
データが必要な場合は、次のクエリを使用することもできます。
select 'insert into tablename values('+yourcolumnanme+','+columnanme2.....+')' from tablename
スキーマのみに興味があります。データではありません。右 ? – TarasB
はい、まずスキーマを取得します。データの取得は別のステップです。 – maycil