WangMenglG 2024-09-29 14:49 采纳率: 100%
浏览 1
已采纳

sql server代码

有没有兄弟帮忙看看这是什么问题
DECLARE @sqlstr VARCHAR(8000)
SET @sqlstr=''

SELECT @sqlstr=@sqlstr+CASE WHEN ISNULL(工艺名称,'')='' THEN '' ELSE ',['+工艺名称+']' END FROM #TBALL
GROUP BY 工艺名称

SET @sqlstr=STUFF(@sqlstr,1,1,'')

SELECT @sqlstr='select * into #zh from #TBALL PIVOT (MAX(qtyBacklog) for 工艺名称 in ('+@sqlstr+')) a order by 本厂型号

OFFSET '+CONVERT(NVARCHAR(10),@offset)+' ROWS FETCH NEXT '+CONVERT(NVARCHAR(10),@pagesize)+' ROWS ONLY

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''内层开料'' and COLUMN_NAME =''开料'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD 开料 INT -- 新增字段的定义
END
------------------------------------------------------内层df------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''内层D/F'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [内层D/F] INT -- 新增字段的定义
END
--------------------------------------------------------------------内层蚀刻----------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''内层蚀刻'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [内层蚀刻] INT -- 新增字段的定义
END
----------------------------------------------------内层AOI---------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''内层AOI'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [内层AOI] INT -- 新增字段的定义
END
----------------------------------------------压板---------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''压板'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [压板] INT -- 新增字段的定义
END
----------------------------------钻孔--------------------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''钻孔'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [钻孔] INT -- 新增字段的定义
END
-----------------------------------除胶------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''除胶'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [除胶] INT -- 新增字段的定义
END
----------------------------------------------沉铜--------------------------------------

 IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''沉铜'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [沉铜] INT -- 新增字段的定义
END
-------------------------------------------vcp----------------------------------------

 IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''VCP'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [VCP] INT -- 新增字段的定义
END
-----------------------------------------加厚铜(图电)--------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''加厚铜(图电)'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [加厚铜(图电)] INT -- 新增字段的定义
END
---------------------------------------树脂塞孔----------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''树脂塞孔'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [树脂塞孔] INT -- 新增字段的定义
END
----------------------------------------研磨房-----------------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''研磨房'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [研磨房] INT -- 新增字段的定义
END
------------------------------------df-----------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''D/F'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [D/F] INT -- 新增字段的定义
END
----------------------------------酸性蚀刻--------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''酸性蚀刻'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [酸性蚀刻] INT -- 新增字段的定义
END
----------------------------------蚀检-----------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''蚀检'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [蚀检] INT -- 新增字段的定义
END
----------------------------------阻焊-------------------------------------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''阻焊'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [阻焊] INT -- 新增字段的定义
END
-----------------------------------白字--------------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''白字'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [白字] INT -- 新增字段的定义
END
----------------------------------无铅喷锡----------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''无铅喷锡'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [无铅喷锡] INT -- 新增字段的定义
END
-----------------------------------沉金-------------------------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''沉金'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [沉金] INT -- 新增字段的定义
END
----------------------------------v-cut--------------------------------------------
IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''V-CUT'' -- 字段名
)
BEGIN
ALTER TABLE #zh -- 表名
ADD [V-CUT] INT -- 新增字段的定义
END
----------------------------------锣房------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''锣房'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [锣房] INT -- 新增字段的定义
END
----------------------------------电测-------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''电测'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [电测] INT -- 新增字段的定义
END
-----------------------------------osp-----------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''OSP'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [OSP] INT -- 新增字段的定义
END
---------------------------------fqc--------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''FQC'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [FQC] INT -- 新增字段的定义
END
----------------------------------包装------------------------------------------------

IF NOT EXISTS (
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME =''#zh'' -- 表名
AND COLUMN_NAME = ''包装'' -- 字段名

)
BEGIN
ALTER TABLE #zh -- 表名
ADD [包装] INT -- 新增字段的定义
END

select * from #zh f1

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-29 14:50
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这段代码看起来是用于在SQL Server中动态地创建一个新的表,并根据某些条件向该表中添加新的列。代码的主要逻辑是检查特定的列是否存在于名为#zh的表中,如果不存在,则添加这些列。这些列的名称和描述看起来像是与某种制造过程相关的术语,例如“工艺名称”,“开料”,“蚀刻”等。

    这段代码的主要步骤如下:

    1. #TBALL表中选择所有的“工艺名称”,并使用这些名称创建一个新的表#zh。这个新表基于一个PIVOT查询创建,用于对#TBALL表中的某些数据进行透视转换。这个过程会根据“工艺名称”对数据进行分组和汇总。
    2. 检查新表#zh中是否存在特定的列(例如“开料”,“蚀刻”等)。这是通过查询INFORMATION_SCHEMA.COLUMNS视图来完成的,该视图包含了数据库中所有表的元数据(例如表名、列名等)。
    3. 如果这些列不存在于#zh表中,那么使用ALTER TABLE语句添加这些列。每个列都被定义为一个整数类型的列(INT)。

    这段代码可能存在的问题或需要注意的地方:

    1. 这段代码似乎缺少了创建临时表#TBALL的部分,你需要确保在运行此代码之前已经创建了该表并填充了数据。
    2. 在使用动态SQL(如使用字符串拼接来创建SQL语句)时,需要特别注意防止SQL注入攻击。在这段代码中,虽然看起来没有直接的用户输入被插入到SQL语句中,但仍然需要保持警惕。
    3. 在添加新列时,如果这些列已经存在,可能会出现错误。你可能需要添加一些逻辑来处理这种情况,例如使用IF NOT EXISTS来检查列是否已经存在。
    4. 在执行这些操作时,需要确保有足够的权限来修改表结构。如果没有足够的权限,可能会导致执行失败。

    另外,最后的查询语句 select * from #zh f1 是无效的,因为 #zh 是一个临时表,它的名字是固定的,不需要通过别名 f1 来引用。正确的语法应该是 select * from #zh。如果你需要引用其他表或执行更复杂的查询操作,可能需要使用不同的语法或别名。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 9月29日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?