标签: sql-server

在SQL Server中搜索存储过程中的文本

我想从我的所有数据库存储过程中搜索文本.我使用下面的SQL:

SELECT DISTINCT
       o.name AS Object_Name,
       o.type_desc
  FROM sys.sql_modules m
       INNER JOIN
       sys.objects o
         ON m.object_id = o.object_id
 WHERE m.definition Like '%[ABD]%';
Run Code Online (Sandbox Code Playgroud)

我想[ABD]在所有存储过程中搜索包括方括号,但它没有给出正确的结果.如何更改查询以实现此目的?

sql sql-server stored-procedures

750
推荐指数
15
解决办法
128万
查看次数

DateTime2与SQL Server中的DateTime

哪一个:

是在SQL Server 2008+中存储日期和时间推荐方法吗?

我知道精度(和存储空间可能)的差异,但暂时忽略这些,是否有关于何时使用什么的最佳实践文档,或者我们应该只使用它datetime2

sql t-sql sql-server datetime datetime2

726
推荐指数
11
解决办法
47万
查看次数

SQL Server:如何加入第一行

我将使用一个具体的,但假设的例子.

每个订单通常只有一个订单项:

命令:

OrderGUID   OrderNumber
=========   ============
{FFB2...}   STL-7442-1      
{3EC6...}   MPT-9931-8A
Run Code Online (Sandbox Code Playgroud)

了LineItem:

LineItemGUID   Order ID Quantity   Description
============   ======== ========   =================================
{098FBE3...}   1        7          prefabulated amulite
{1609B09...}   2        32         spurving bearing
Run Code Online (Sandbox Code Playgroud)

但偶尔会有一个包含两个订单项的订单:

LineItemID   Order ID    Quantity   Description
==========   ========    ========   =================================
{A58A1...}   6,784,329   5          pentametric fan
{0E9BC...}   6,784,329   5          differential girdlespring 
Run Code Online (Sandbox Code Playgroud)

通常在向用户显示订单时:

SELECT Orders.OrderNumber, LineItems.Quantity, LineItems.Description
FROM Orders
    INNER JOIN LineItems 
    ON Orders.OrderID = LineItems.OrderID
Run Code Online (Sandbox Code Playgroud)

我想在订单上显示单个项目.但是,由于此偶尔包含两个(或更多)商品的订单,订单将显示重复:

OrderNumber   Quantity   Description
===========   ========   ==================== …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2000

718
推荐指数
9
解决办法
52万
查看次数

Count(*)vs Count(1) - SQL Server

只是想知道你们中的任何一个人是否Count(1)过度使用过Count(*),如果性能有显着差异,或者这只是从过去几天带来的遗留习惯?

(具体数据库是SQL Server 2005.)

sql sql-server performance

699
推荐指数
11
解决办法
36万
查看次数

如何列出引用SQL Server中给定表的所有外键?

我需要删除SQL Server数据库中高度引用的表.如何获取我需要删除的所有外键约束的列表以便删除表?

(在管理工作室的GUI中,SQL答案比点击更好.)

sql t-sql sql-server

692
推荐指数
18
解决办法
58万
查看次数

如果SQL Server中存在表,如何删除表?

表名是Scores.

执行以下操作是否正确?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

678
推荐指数
12
解决办法
111万
查看次数

SQL使用SELECT*[除了columnA] FROM tableA排除列?

我们都知道要从表中选择所有列,我们都可以使用

SELECT * FROM tableA
Run Code Online (Sandbox Code Playgroud)

有没有办法在不指定所有列的情况下从表中排除列?

SELECT * [except columnA] FROM tableA
Run Code Online (Sandbox Code Playgroud)

我知道的唯一方法是手动指定所有列并排除不需要的列.这非常耗时,所以我正在寻找节省时间和精力的方法,以及如果表有更多/更少的列,将来的维护.

谢谢!

sql t-sql sql-server

671
推荐指数
21
解决办法
72万
查看次数

如何从SQL Server中的表中获取列名?

我想查询表的所有列的名称.我找到了如何做到这一点:

但我需要知道:如何在Microsoft SQL Server(在我的情况下为2008)中完成此操作?

sql t-sql sql-server sql-server-2008

648
推荐指数
19
解决办法
157万
查看次数

检查是否存在临时表,并在创建临时表之前删除它是否存在

我正在使用以下代码检查临时表是否存在,如果存在,则在再次创建之前删除该表.只要我不更改列,它就可以正常工作.如果我稍后添加一列,则会显示错误"无效列".请让我知道我做错了什么.

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
    DROP TABLE #Results

CREATE TABLE #Results
(
    Company                CHAR(3),
    StepId                TINYINT,
    FieldId                TINYINT,
)

select company, stepid, fieldid from #Results

--Works fine to this point

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
    DROP TABLE #Results

CREATE TABLE #Results
(
    Company                CHAR(3),
    StepId                TINYINT,
    FieldId                TINYINT,
    NewColumn            NVARCHAR(50)
)

select company, stepid, fieldid, NewColumn from #Results

--Does not work
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2005 alter-table temp-tables

637
推荐指数
13
解决办法
134万
查看次数

使用连接的SQL更新查询

我必须更新一个字段,其值由3个表的连接返回.

例:

select
    im.itemid
    ,im.sku as iSku
    ,gm.SKU as GSKU
    ,mm.ManufacturerId as ManuId
    ,mm.ManufacturerName
    ,im.mf_item_number
    ,mm.ManufacturerID
from 
    item_master im, group_master gm, Manufacturer_Master mm 
where
    im.mf_item_number like 'STA%'
    and im.sku=gm.sku
    and gm.ManufacturerID = mm.ManufacturerID
    and gm.manufacturerID=34
Run Code Online (Sandbox Code Playgroud)

我想更新mf_item_number表的字段值item_master与在上述条件中连接的其他值.

我怎样才能在MS SQL Server中执行此操作?

sql t-sql sql-server sql-server-2005 sql-update

630
推荐指数
7
解决办法
86万
查看次数