使用临时表上的函数检查约束

时间:2015-03-03 17:54:28

标签: sql-server tsql

我正在尝试使用临时表上的函数设置检查约束,并收到以下错误:

  

Msg 4121,Level 16,State 1,Line 10
  找不到列“dbo”或用户定义的函数或聚合“dbo.CheckCustomers”,或者名称不明确。

...但select dbo.CheckCustomers()有效。

通常可以在临时表上设置这样的约束吗?

1 个答案:

答案 0 :(得分:3)

请记住,临时表实际上是在系统数据库tempDB中创建的,而不是在实际数据库中创建的。因此,为了使您能够在临时表中使用函数作为检查约束,该函数必须存在于tempDB中。

但重要的是,每次重新启动服务器时都会重新创建tempDB。因此,如果你想采用这种方法,你需要围绕它进行设计。 (参考文献是Inside Microsoft SQL Server 2008 T-SQL Programming