小编Dan*_* E.的帖子

有没有办法从SSMS中的#Temp_Table扩展SELECT*中的列列表?

如此处所示LINK您可以将鼠标悬停*在a SELECT * from...和工具提示中,将会显示由此表示的列的列表*.

有没有办法将文本从工具提示复制到剪贴板?

我知道您可以使用对象资源管理器中的columns文件夹通过将列拖动到查询编辑器窗口来生成列列表,但这不适用于临时表,因为它们不会出现在对象资源管理器中.

编辑

为了完整起见,下面的答案"您可以右键单击对象资源管理器中的表,然后选择脚本表 - >创建到 - >新查询编辑器窗口".由于与上述相同的原因,也不可行.

结束编辑

我没有在SSMSBoost中看到这样做的方法,SSMSBoost是我使用的SSMS的附加组件.(我提到它的唯一原因是我很确定我已经看到了SOMS上的SSMSBoost开发人员,功能请求??)

编辑2:有没有其他方法可以快速扩展*a SELECT * from #Temp_Table而不实际运行代码来创建临时表?结束编辑2

sql-server ssms developer-tools ssms-addin ssms-2012

11
推荐指数
2
解决办法
7337
查看次数

SQL Server查询错误,"对象或列名称丢失或为空"

我在SQL Server中的存储过程中有以下查询:

SELECT  TLI.LESNumber
    ,COUNT(TLT.PL)
INTO #PWCM
FROM #tmpLESImport TLI
INNER JOIN tbl_LES L 
    on TLI.LESNumber=L.NUMB
WHERE ISNULL(L.DELT_FLAG,0)=0
    AND L.SCHL_PK=@SCHL_PK
    AND TLI.PL IS NOT NULL
    AND LEN(TLI.PL)>0
GROUP BY LESNumber 
HAVING COUNT(PL)>1
Run Code Online (Sandbox Code Playgroud)

运行查询时出现以下错误:

An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Change the alias to a valid name.

谁能告诉我为什么?#PWCM在此查询之前不会出现在任何地方.

sql sql-server

6
推荐指数
2
解决办法
5万
查看次数

多列的SQL"IN"语句

我想过滤名称,X组合永远不是X = Y让我们假设下表:

*Name*     *X*      *Y*
   A        2        1
   A        2        2   <--- fulfills requirement for Name=A, X=2
   A       10        1
   A       10        2
   B        3        1
   B        3        3   <--- fulfills requirement for Name=B, X=3
   B        1        1   <--- fulfills requirement for Name=B, X=1
   B        1        3
Run Code Online (Sandbox Code Playgroud)

所以我想返回组合Name = A,X = 10,其中X = Y永远不为真.这是我的方法(在语法上不正确)

SELECT * 
FROM TABLE 
WHERE NAME
     , X NOT IN (SELECT DISTINCT NAME
                       , X 
                 FROM TABLE 
                 WHERE X=Y)
Run Code Online (Sandbox Code Playgroud)

我的问题是where语句无法处理多个列.有谁知道如何做到这一点?

sql distinct

3
推荐指数
1
解决办法
2万
查看次数

SSIS Foreach循环,如果没有文件,则发送电子邮件?

我有一个非常简单的SSIS包,它抓取一个或多个平面文件并将数据导入SQL Server 2012表,然后一个单独的包归档文件..这些包工作正常,但我希望它警告我,如果没有文件启动时存在.

我知道Foreach循环在没有文件时会生成警告:

Warning: The For Each File enumerator is empty. The For Each File enumerator did not find any files that matched the file pattern, or the specified directory was empty.

我无法找到使用该警告触发电子邮件的方法,因为它不会导致程序包失败,并且我不确定是否存在可以基于警告触发下一步的约束或表达式.

我使用for each循环来填充一个变量,@[User::FileName]其中任何文件名都与预设的模式匹配.

具有表达式@[User::FileName]==""和完成或成功的通知操作员任务无论是什么(如果有文件)都会触发.

这在SSIS中是否可行?

ssis sql-server-2012

2
推荐指数
1
解决办法
3519
查看次数

使用不存在的地方删除

我正在尝试删除主文件中存在的记录,其中包含三个字段mn_no,sb_no和dp_no的帐号不在事务表中.由于帐号可能在一个或多个交易表中,因此我需要测试其在所有交易表中的存在.当我运行以下查询时,MS-SQL在第1行附近返回不正确的语法错误.

DELETE
FROM SYACTFIL_SQL a
WHERE NOT EXISTS (
        SELECT b.mn_no
            ,b.sb_no
            ,b.dp_no
        FROM gltrxhst_sql b
        WHERE a.mn_no = b.mn_no
            AND a.sb_no = b.sb_no
            AND a.dp_no = b.dp_no
        )
    AND NOT EXISTS (
        SELECT b.mn_no
            ,b.sb_no
            ,b.dp_no
        FROM gltrxfil_sql b
        WHERE a.mn_no = b.mn_no
            AND a.sb_no = b.sb_no
            AND a.dp_no = b.dp_no
        )
    AND a.mn_no <> '00000000'
Run Code Online (Sandbox Code Playgroud)

sql-server sql-delete

2
推荐指数
1
解决办法
4597
查看次数

将SQL查询结合到一个查询中

嗨我有一组获取数据的查询

当天有两个计数行,晚上有两个,我想要的是将这些组合成一个查询.

SELECT controllerID
    ,COUNT(CardID) AS GoodCountDay
FROM ReaderData
WHERE (
        ReaderTime BETWEEN '08:00:00'
            AND '20:00:00'
        )
    AND (CardID = 'fffffff0')
    AND (DATEDIFF(DAY, DATEADD(DAY, - 0, CURRENT_TIMESTAMP), dtReading) = 0)
GROUP BY controllerID

SELECT controllerID
    ,COUNT(CardID) AS ScrapCountDay
FROM ReaderData
WHERE (
        ReaderTime BETWEEN '08:00:00'
            AND '20:00:00'
        )
    AND (CardID = '007CF00B')
    AND (DATEDIFF(DAY, DATEADD(DAY, - 0, CURRENT_TIMESTAMP), dtReading) = 0)
GROUP BY controllerID

SELECT controllerID
    ,COUNT(CardID) AS GoodCountNight
FROM ReaderData
WHERE (dtReading >= DATEADD(hour, 20, DATEADD(day, - 1, CAST(CAST(GETDATE() …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

1
推荐指数
1
解决办法
54
查看次数

子查询返回的值超过1.这是不允许的.错误在哪里?

我得到错误:

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

我很困惑,因为它告诉我错误发生在第2行,我不明白这是怎么回事?

UPDATE .patient_insurance
SET insurance_sequence = CASE def_cob
        WHEN 1 THEN 'Primary'
        WHEN 2 THEN 'Secondary'
        WHEN 3 THEN 'Third'
        WHEN 4 THEN 'Fourth'
        WHEN 5 THEN 'Fifth'
        WHEN 6 THEN 'Sixth'
        WHEN 7 THEN 'Seventh'
        WHEN 8 THEN 'Eigth'
        WHEN 9 THEN 'Ninth'
        END
    ,status_flag = CASE active_ind
        WHEN 'Y' THEN 'Yes'
        ELSE 'No'
        END
    ,insurance_company_id = (
        SELECT id
        FROM insurance
        WHERE companyname = payer_name
        )
    ,insurance_number = policy_nbr
    ,policy_group = group_nbr
FROM person_payer
    ,person …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

1
推荐指数
1
解决办法
222
查看次数