这在SQL Server 2008中不起作用:
ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'
Run Code Online (Sandbox Code Playgroud)
错误是:
关键字"SET"附近的语法不正确.
我究竟做错了什么?
我有一个表收集从我们网站提交的表单,但由于某种原因,当他们创建表时,他们没有在表中添加时间戳.我希望它输入记录输入的确切日期和时间.
我知道它在某处,但我似乎无法找到如何设置默认值(如在Access中,你使用getNow()或Now())但我不知道在哪里放它.
谁能告诉我以下查询中的错误在哪里?
ALTER TABLE Countries
ADD (
HasPhotoInReadyStorage bit,
HasPhotoInWorkStorage bit,
HasPhotoInMaterialStorage bit,
HasText bit);
ALTER TABLE Regions
ADD ( HasPhotoInReadyStorage bit,
HasPhotoInWorkStorage bit,
HasPhotoInMaterialStorage bit
HasText bit);
ALTER TABLE Provinces
ADD ( HasPhotoInReadyStorage bit,
HasPhotoInWorkStorage bit,
HasPhotoInMaterialStorage bit
HasText bit);
ALTER TABLE Cities
ADD ( HasPhotoInReadyStorage bit,
HasPhotoInWorkStorage bit,
HasPhotoInMaterialStorage bit
HasText bit);
Alter table Hotels
Add
{
HasPhotoInReadyStorage bit,
HasPhotoInWorkStorage bit,
HasPhotoInMaterialStorage bit,
HasHotelPhotoInReadyStorage bit,
HasHotelPhotoInWorkStorage bit,
HasHotelPhotoInMaterialStorage bit,
HasReporterData bit,
HasMovieInReadyStorage bit,
HasMovieInWorkStorage bit,
HasMovieInMaterialStorage bit
};
Run Code Online (Sandbox Code Playgroud)
我收到以下错误: …
什么相当于SQL Server中的Oracle RowID?
有没有办法DateTime.Now在Sql Server中设置列的默认值?
例:
table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null
Run Code Online (Sandbox Code Playgroud)
这条线:
Insert into Event(Description) values('teste');
Run Code Online (Sandbox Code Playgroud)
应该插入一行,Date值应该是当前日期.
我使用EF6 report在我的数据库中存储该类的实例.数据库已包含数据.说我想添加一个属性report,
public class report {
// ... some previous properties
// ... new property:
public string newProperty{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我转到包管理器控制台并执行
add-migration Report-added-newProperty
update-database
Run Code Online (Sandbox Code Playgroud)
我将在'/ Migrations'文件夹中获取一个文件,newProperty向表中添加一列.这很好用.但是,对于数据库中较旧的条目,该值newProperty现在为空字符串.但我希望它是,例如,"老".
所以我的问题是:如何在迁移脚本(或其他地方)中为新属性(任何类型)设置默认值?
我在sql server中有一个表,但是想要添加一个充满零的额外列
这样做的最佳方法是什么
att1 att2
---------
1.0 5.8
2.7 3.8
5.1 6.8
Run Code Online (Sandbox Code Playgroud)
变
att1 att2 extra
----------------
1.0 5.8 0.0
2.7 3.8 0.0
5.1 6.8 0.0
Run Code Online (Sandbox Code Playgroud) INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Run Code Online (Sandbox Code Playgroud)
现在检查一下:
如果插入value1 = null,则将其更改为0
如何通过触发器来做到这一点?我用谷歌搜索了一些例子,我从来没有做过触发器,所以它相当令人困惑.
到目前为止只有这个:
CREATE TRIGGER testTrigger
ON myTable
AFTER INSERT, UPDATE, DELETE
Run Code Online (Sandbox Code Playgroud) 我有一个employees表,我想添加一个第三列,它被称为名为"FullName"的名字和名字的串联.如何在不丢失前两列任何数据的情况下实现这一目标?
我有一个包含两个表not null列Created和Updated.
我写了相应的触发器
ALTER TRIGGER [dbo].[tr_category_inserted] ON [dbo].[Category]
AFTER INSERT
AS
BEGIN
UPDATE Category
SET Created = GETDATE(), Updated = GETDATE()
FROM inserted
WHERE Category.ID = inserted.ID;
END
Run Code Online (Sandbox Code Playgroud)
和
ALTER TRIGGER [dbo].[tr_category_updated] ON [dbo].[Category]
AFTER UPDATE
AS
BEGIN
UPDATE Category
SET Updated = GETDATE()
FROM inserted
inner join [dbo].[Category] c on c.ID = inserted.ID
END
Run Code Online (Sandbox Code Playgroud)
但如果我插入一个新行,我会收到一个错误
无法将值NULL插入"创建"列,表"类别"; 列不允许空值.INSERT失败.
插入命令:
INSERT INTO [Category]([Name], [ShowInMenu], [Deleted])
VALUES ('category1', 0, 0)
Run Code Online (Sandbox Code Playgroud)
如何在没有设置这些列的情况下编写此类触发器以允许null?
sql-server ×7
sql ×5
t-sql ×3
.net ×1
c# ×1
datetime ×1
oracle ×1
row-number ×1
rowid ×1
triggers ×1