是不是临时表不能绑定默认?----请进来看看,代码错误

asp111222 2003-11-23 02:19:31
create table dbo.#myTable(
Id int,
myVar varchar(20)
)
go
create default df_myDf
as 'afadfsdfasdf'
go

sp_bindefault df_myDf,'dbo.#myTable.myVar'
go

select * from #myTable

insert #myTable(ID)
values(12)
insert #myTable(ID)
values(23)
insert #myTable(ID)
values(33)

select * from #myTable
drop table #myTable
drop default df_myDf
go

请问如何改上面的语句?
第二个SELECT得到的不是空?


您并不拥有名为 '#myTable' 的、包含列 'myVar' 的表。
Id myVar
----------- --------------------

(所影响的行数为 0 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

Id myVar
----------- --------------------
12 NULL
23 NULL
33 NULL

(所影响的行数为 3 行)

...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
asp111222 2003-11-23
  • 打赏
  • 举报
回复
use tempdb
go
create default df_myDf
as 'afadfsdfasdf'
go
sp_bindefault df_myDf,'dbo.#myTable.myVar'
go
use pubs
go

create table dbo.#myTable(
Id int,
myVar varchar(20)
)
go
select * from #myTable

insert #myTable(ID)
values(12)
insert #myTable(ID)
values(23)
insert #myTable(ID)
values(33)

select * from #myTable
drop table #myTable
go
use tempdb
go
drop default df_myDf
go
use pubs
go
shuiniu 2003-11-23
  • 打赏
  • 举报
回复
还有
use tempdb
go
drop default df_myDf
go
asp111222 2003-11-23
  • 打赏
  • 举报
回复
昏,。,

没注意看,咋
use yourdb
后面没有GO!

谢谢两位
asp111222 2003-11-23
  • 打赏
  • 举报
回复
shuiniu(用泪水灌溉幸福) 执行结果是如下的呀:




器: 消息 111,级别 15,状态 1,行 2
'CREATE DEFAULT' 必须是批查询中的第一条语句。
服务器: 消息 15016,级别 16,状态 1,过程 sp_bindefault,行 103
默认的 'df_myDf' 不存在。
Id myVar
----------- --------------------

(所影响的行数为 0 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)


(所影响的行数为 1 行)

Id myVar
----------- --------------------
12 NULL
23 NULL
33 NULL

(所影响的行数为 3 行)

服务器: 消息 3701,级别 11,状态 5,行 13
无法 除去 默认值 'df_myDf',因为它在系统目录中不存在。
shuiniu 2003-11-23
  • 打赏
  • 举报
回复
找了半天的帮助!
也没找到帮助说,临时表上不能绑定默认值的内容!
根据错误再看sp_bindefault这个系统存储过程才知道为什么
绑定失败!
sp_helptext sp_bindefault
应该这样
use yourdb
create table dbo.#myTable(
Id int,
myVar varchar(20)
)
go
use tempdb
create default df_myDf
as 'afadfsdfasdf'
go
sp_bindefault df_myDf,'dbo.#myTable.myVar'
go
use yourdb
select * from #myTable

insert #myTable(ID)
values(12)
insert #myTable(ID)
values(23)
insert #myTable(ID)
values(33)

select * from #myTable
drop table #myTable
drop default df_myDf
go

绑定在临时表上的默认值,创建时必需在tempdb数据库上下文下创建!
才能绑定成功!
不然,sql server在绑定的时候发现绑定表所在的数据库,没有指定的默认值!





zjcxc 元老 2003-11-23
  • 打赏
  • 举报
回复
create table #myTable(
Id int,
myVar varchar(20) default 'afadfsdfasdf'
)
go

insert #myTable(ID)
values(12)
insert #myTable(ID)
values(23)
insert #myTable(ID)
values(33)

select * from #myTable

go
drop table #myTable
go

34,609

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧