使用临时表上的函数检查约束
Posted
技术标签:
【中文标题】使用临时表上的函数检查约束【英文标题】:Check Constraint with function on temporary table 【发布时间】:2015-03-03 17:54:28 【问题描述】:我正在尝试使用临时表上的函数设置检查约束并得到以下错误:
消息 4121,第 16 级,状态 1,第 10 行 找不到列“dbo”或用户定义的函数或聚合“dbo.CheckCustomers”,或者名称不明确。
...但select dbo.CheckCustomers()
有效。
一般可以在临时表上设置这样的约束吗?
【问题讨论】:
【参考方案1】:请记住,临时表实际上是在系统数据库 tempDB 中创建的,而不是在您的实际数据库中。因此,为了让您能够在临时表中使用函数作为检查约束,该函数必须存在于 tempDB 中。
然而,重要的一点是,每次重新启动服务器时都会重新创建 tempDB。因此,如果您确实想采用这种方法,则需要围绕它进行设计。 (对此的参考是Inside Microsoft SQL Server 2008 T-SQL Programming)
【讨论】:
...或使用三部分命名? @gvee 很遗憾,你不能。 SQL Server 会喊A user-defined function name cannot be prefixed with a database name in this context.
以上是关于使用临时表上的函数检查约束的主要内容,如果未能解决你的问题,请参考以下文章