Jan*_*ren 5 sql t-sql sql-server-2008
我尝试测试一些东西,我得到的问题是我无法将默认值绑定到列.
我的目标是更改列并将预定义的默认值附加True
到该列.
我究竟做错了什么?
CREATE default [dbo].[True] as (1)
GO
CREATE TABLE dbo.aaa ( column_a INT, column_b char(1)) ;
GO
INSERT INTO dbo.aaa (column_a)VALUES ( 7 ) ;
GO
ALTER TABLE dbo.aaa ADD CONSTRAINT DF_col_b DEFAULT [dbo].[True] FOR column_b ;
GO
INSERT INTO dbo.aaa (column_a) VALUES ( 10 ) ;
GO
SELECT * FROM dbo.aaa ;
GO
DROP TABLE dbo.aaa ;
GO
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我得到了ALTER TABLE行的错误
Msg 128,Level 15,State 1,Line 1
在此上下文中不允许使用名称"dbo.True".有效表达式是常量,常量表达式和(在某些上下文中)变量.不允许使用列名.
如果您希望您的列默认为“1”,为什么不尝试以下操作:
ALTER TABLE dbo.aaa ADD CONSTRAINT DF_col_b DEFAULT '1' FOR column_b ;
Run Code Online (Sandbox Code Playgroud)
您的默认值称为 True。如果唯一的可能性是 True 或 False,那么您可能应该将类型从 char(1) 更改为 bit。alter 语句将变为:
ALTER TABLE dbo.aaa ADD CONSTRAINT DF_col_b DEFAULT 1 FOR column_b ;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1403 次 |
最近记录: |