Questions tagged «alter-table»

“ ALTER TABLE”是一条SQL语句,它允许您对数据库表进行模式更改(即,从现有表添加,删除或更改列)。

5
将可空列更改为具有默认值的非空
今天,我遇到了一个旧表,其中有一个名为“ Created”的日期时间列,该列允许为空。现在,我想更改它,使其不是NOT NULL,并且还包含一个约束以添加默认值(getdate())。 到目前为止,我已经有了以下脚本,只要我事先清除了所有空值,该脚本就可以正常工作: ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 有没有办法在ALTER语句上也指定默认值?

7
ALTER表-在MySQL中添加AUTOINCREMENT
我在MySQL的on列中创建了一个表itemID。 创建表格后,现在我想将此列更改为AUTOINCREMENT。 如何使用ALTER语句完成此操作? 表定义: ALLITEMS (itemid int(10) unsigned, itemname varchar(50)) 我正在使用以下代码,但它抛出语法错误 错误:语法不正确。 ALTER TABLE allitems MODIFY itemid INT(10) UNSIGNED AUTOINCREMENT;
72 mysql  sql  alter-table 

6
将列添加到表,然后在事务内更新它
我正在创建一个将在MS SQL服务器中运行的脚本。该脚本将运行多个语句,并且需要进行事务处理,如果其中一个语句失败,则将停止整体执行并回滚所有更改。 在发出ALTER TABLE语句向表中添加列,然后更新新添加的列时,我在创建此事务模型时遇到了麻烦。为了立即访问新添加的列,我使用GO命令执行ALTER TABLE语句,然后调用我的UPDATE语句。我面临的问题是我无法在IF语句中发出GO命令。在我的交易模型中,IF语句很重要。这是我尝试运行的脚本的示例代码。还请注意,发出GO命令将丢弃@errorCode变量,并且需要在使用之前在代码中声明下来(此代码不在下面的代码中)。 BEGIN TRANSACTION DECLARE @errorCode INT SET @errorCode = @@ERROR -- ********************************** -- * Settings -- ********************************** IF @errorCode = 0 BEGIN BEGIN TRY ALTER TABLE Color ADD [CodeID] [uniqueidentifier] NOT NULL DEFAULT ('{00000000-0000-0000-0000-000000000000}') GO END TRY BEGIN CATCH SET @errorCode = @@ERROR END CATCH END …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.