----when there is one column
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200)
) '
----when there are two column
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200)
) ;'
----when there are three column
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200)
) '
私はこれを行うの知っている一つの方法は次のとおりです。
----when there is one column
If ((@colname1 IS NOT NULL AND LEN(@colname1) !=0))
BEGIN
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200)
)'
END
----when there are two column
If ((@colname1 IS NOT NULL AND LEN(@colname1) !=0)
AND (@colname2 IS NOT NULL AND LEN(@colname2) !=0))
BEGIN
Drop table [dbo].['[email protected]_name+']
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200)
)'
END
----when there are three column
If ((@colname1 IS NOT NULL AND LEN(@colname1) !=0)
AND (@colname2 IS NOT NULL AND LEN(@colname2) !=0)
AND (@colname3 IS NOT NULL AND LEN(@colname3) !=0))
BEGIN
Drop table [dbo].['[email protected]_name+']
'CREATE TABLE [dbo].['[email protected]_name+'] (
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200),
['[email protected]+'] [VARCHAR](200)
) '
END
この方法を使用することにより、私のコードは非常に長くなります。これを行う他の効率的な方法はありますか? @ colname1、@ colname2、@ colname3の値を別々に渡すのではなく、@colname = 'col1、col2、col3'のように@colnameという単一のパラメーターに値を渡します。どうすればいいですか?
を試すことができます。実行時ではなく、設計時にテーブルなどのデータベースオブジェクトを作成します。 –
実際に何を達成しようとしていますか?テーブルを動的に作成することを伴わないより良い方法があるかもしれません。 –
いつでも1つの列から開始し、条件付きで "alter table add column"文を実行できます。 – Jeremy