gpt4 book ai didi

sql-server - 用户定义的数据类型和#temp 表

转载 作者:行者123 更新时间:2023-12-04 17:57:36 25 4
gpt4 key购买 nike

在 SQL Server 2008 数据库中,我有一个用户定义的数据类型。在一个存储过程中,我打算将该类型用作临时表的列类型,例如:

CREATE TABLE #SomeTable
(
[some_column] UDT_SomeType,
-- other columns
)

显然我的尝试失败了,因为据我搜索,我的 UDT_SomeType 不存在于 tempdb(实际存储临时表的地方)中。

UDT_SomeType 实际上是 NUMERIC(19,9),所以我现在可以使用以下解决方法:

CREATE TABLE #SomeTable
(
[some_column] NUMERIC(19,9),
-- others columns
)

但是我认为这不是一个很好的解决方案。是否有任何类型的最佳实践可以应用到这里?

最佳答案

重要信息:

这个变通方法不应该在任何 SP 或结构化查询中使用;它的唯一用途应该限于 protected 环境中的临时查询,以避免任何可能的缺陷。编写它只是为了证明在特殊情况下可以在临时表中包含 UDT。感谢@Marcel(见评论)指出了这一点。

不幸的是,这并不是很简单,但您可以使用一些脚本,我会保留一个小脚本来创建所有需要的类型,以便在必要时启动。

辅助脚本:

USE [tempdb]
GO
CREATE TYPE [UDT_SomeType] FROM NUMERIC(19,9)
GO

普通脚本:

USE [YOURDB]
GO

CREATE TABLE #SomeTable
(
[some_column] UDT_SomeType,
-- other columns
)

关于sql-server - 用户定义的数据类型和#temp 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38878480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com