我想从我的所有数据库存储过程中搜索文本.我使用下面的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 Server 2008+中存储日期和时间的推荐方法吗?
我知道精度(和存储空间可能)的差异,但暂时忽略这些,是否有关于何时使用什么的最佳实践文档,或者我们应该只使用它datetime2?
我将使用一个具体的,但假设的例子.
每个订单通常只有一个订单项:
命令:
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) 只是想知道你们中的任何一个人是否Count(1)过度使用过Count(*),如果性能有显着差异,或者这只是从过去几天带来的遗留习惯?
(具体数据库是SQL Server 2005.)
我需要删除SQL Server数据库中高度引用的表.如何获取我需要删除的所有外键约束的列表以便删除表?
(在管理工作室的GUI中,SQL答案比点击更好.)
表名是Scores.
执行以下操作是否正确?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
Run Code Online (Sandbox Code Playgroud) 我们都知道要从表中选择所有列,我们都可以使用
SELECT * FROM tableA
Run Code Online (Sandbox Code Playgroud)
有没有办法在不指定所有列的情况下从表中排除列?
SELECT * [except columnA] FROM tableA
Run Code Online (Sandbox Code Playgroud)
我知道的唯一方法是手动指定所有列并排除不需要的列.这非常耗时,所以我正在寻找节省时间和精力的方法,以及如果表有更多/更少的列,将来的维护.
谢谢!
我正在使用以下代码检查临时表是否存在,如果存在,则在再次创建之前删除该表.只要我不更改列,它就可以正常工作.如果我稍后添加一列,则会显示错误"无效列".请让我知道我做错了什么.
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) 我必须更新一个字段,其值由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-server ×10
sql ×8
t-sql ×7
alter-table ×1
datetime ×1
datetime2 ×1
performance ×1
sql-update ×1
temp-tables ×1