問題タブ [alter-column]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
63 参照

sql-server - PK を VARCHAR から INT に変更

varchar(20) の PK を持つテーブルがあります。これがクエリの速度を低下させるものだと考えていました(チェックしていませんが、PKとしてのvarcharについて多くのことを読んでいました)。

問題は、列を INT (ID) に置き換えたいのですが、そこからの参照整合性の制約があります。

それを行うための簡単なタスクがいくつかありますか?それがない場合は、CASCADE Update に残りの更新を行わせるために、1 つずつ実行します。

PS: MS SQL Server 2008 を使用

0 投票する
1 に答える
470 参照

sql-server - SQL Server ALTER COLUMN と依存関係

varcharの列のサイズを大きくしたいtable A。このテーブルには、この列を更新するストアド プロシージャなどの多くの依存関係があります。this のサイズを大きくして小さくしないとvarchar、依存関係が壊れますか? 同様に、この列を更新するストアド プロシージャが失敗し、呼び出されたときにエラーが発生しますか?

0 投票する
2 に答える
1904 参照

sql-server - MSSQL: 一般に、null 以外の列を変更します

Microsoft SQL Server 2008 R2 で、null 許容列を非 null に変更したいと考えています。明らかに、データ型を次のように言い換えることでこれを行うことができます。

たとえば、列 tc が int データ型の場合。しかし、既存のデータ型を言い換えずに、一般的にはどうでしょうか? 私はそれに相当するものを探しています

既存のデータ型は保持され、null 可能性のみがオフになります。

バックグラウンド

データベースの監査を行ったところ、列が null 許容として指定されているにもかかわらず、実際には null 値が発生しないという多くのケースが見つかりました。これらの列で null 値を禁止するようにスキーマを強化したいと思います。データ型が間違っている可能性があるため、それぞれの列を変更するために DDL を手動で書き込むと、エラーが発生しやすくなります。各列の既存のデータ型を出力するスキーマ ダンパー プログラムを使用してコードを自動的に生成することもできますが、ダンパー プログラムが最新のデータ型を認識せず、別のものを出力する場合 (例として、 datetime2 を認識せず、代わりに datetime を書き出します)。

SQL サーバーは、列の型が何であるかを既に認識しているため、それを保持して null 可能性をオフにするように指示する方法が確実にあります。

既存のデータ型を見つけて DDL に入れる以外にそれを行う方法が本当にない場合は、適切なツールを使用することをお勧めできますか? Sybase時代のdbschema.plについては知っていますが、スキーマビューから必要なステートメントを出力する、より現代的なもの、またはSQLのよく知られたフラグメントがあるかもしれません。

0 投票する
1 に答える
234 参照

sql - SQL Server ALTER COLUMN NOT NULL has no effect

The designers of table SOME_TABLE did not define a primary key, and worse, they set one of the columns that could define the primary key as NULLable (the others are OK).

The data for SOME_TABLE.PrinterPos does not contain any NULL values.

I am writing an upgrade script to apply to ~50 databases.

The following code is failing:

私はメッセージを受け取ります

テーブル 'SOME_TABLE' の null 許容列に PRIMARY KEY 制約を定義できません。

最初のコマンドが完全に無視されているようです。これを示すメッセージはありませんが。

  1. それを独自のバッチに入れるために、最初のコマンドを使用sp_executesqlして実行しようとしましたが、効果はありませんでした。
  2. SQL Server Management Studio で最初のコマンドを実行し、続いて 2 番目のコマンドを実行すると、正常に実行されます。

この変更を完全に自動化する必要があります。スクリプトを介してこれを機能させるにはどうすればよいですか?

0 投票する
1 に答える
4130 参照

sql-server - インデックスがその列に依存している場合、インデックスを再作成せずにその列を null から非 null に変更するにはどうすればよいですか?

Column宣言されている列がNULL DEFAULT(GETUTCDATE())あり、この列を含む非クラスター化インデックスがあります。この列を次のように変更したいのですが、ステートメントNOT NULL DEFAULT(GETUTCDATE())を実行するALTER TABLE ALTER COLUMNと、SQL Azure サービスは、この列に依存するインデックスがあるため、列を変更できないと言います。

これは運用データベースで、テーブルには約 1,000 万のレコードが保持されます。したがって、データベースの速度が低下するため、インデックスを削除して再作成したくありません (特に、インデックスの作成には数分かかる場合があります)。

インデックスを再作成せずに列を変更するにはどうすればよいですか?

0 投票する
3 に答える
1705 参照

sql-server - 動的 T-SQL - 列定義をフィールドの最大長に変更する

列定義をフィールドの最大長に変更するコードを動的に作成しようとしています。

データベースの内容は変更されないことに注意してください。

ここに私がこれまでに持っているものがありますが、最大長のクエリを個別に実行して数値を取得することはできません。どこが間違っていますか?

よろしく。

0 投票する
2 に答える
924 参照

sql - 列の変更中に「ORA-00900: 無効な SQL ステートメント」エラーが発生する

私はSQL開発者にこのコードを持っています:

太字の単語でエラーが発生します。それは言う

ORA-00900: SQL文が無効です。

誰かが私が間違っていることを助けてくれますか?

0 投票する
0 に答える
676 参照

alter-table - ALTER TABLE が機能しない

テーブル項目の列のデータ型を変更しようとしています。現在は 0 になっています (現在は int です)。実行するとどうなりますか? 使用しようとしましint num = cmd.ExecuteNonQuery()たが、エラーが発生して機能しませんでした。このコードでは、変更は見られません。LONGBLOB は、データベースに画像を保存するための特定のデータ型であることがわかりました。これは私のコードです:

GetCommand メソッドは次のとおりです。

0 投票する
1 に答える
304 参照

mysql - liquibase の変更データ型を使用している間、同じデータ型

liquibase modifydatatype アップグレードのためにデフォルトで実行される前提条件はありますか? たとえば、データ型が整数の列「A」を次のように変更するとします。

実行前に、列の型が以前と同じであることを確認しますか?

ドキュメントにはそのようなものは何も書かれていません: http://www.liquibase.org/documentation/changes/modify_data_type.html