我已经看过这个了,但是我见过和试过的解决方案都没有解决我的问题.
背景:使用SQL Server 2005
当我运行存储过程将数据插入表时,它工作正常.如果我获得SQL作业以在相同数据上运行相同的存储过程,则作业成功运行,但数据未插入到同一目标表中.
我试过了SET ansi_warnings OFF,但编译SQL时出错了,说
异构查询需要为连接设置ANSI_NULLS和ANSI_WARNINGS选项.这确保了一致的查询语义.启用这些选项,然后重新发出查询.
表模式:
[JobNo] [int]
[ProductCode] [varchar](20)
[ProductName] [varchar](200)
[ReportedAvailability] [varchar](100)
[ReportedProductClean] [varchar](100)
[ReportedProductDate] [varchar](100)
[ReportedProductPrice] [int]
[ReportedCasesOrdered] [int]
[AvailableYes] [int]
[AvailableOOS] [int]
[AvailableNotRanged]
[ProductClean] [int]
[ProductInDate] [int]
[ProductPrice] [int]
[CasesOrdered] [int]
[Include] [int]
[Counter] [int]
[UserId] [varchar](10)
[Modified] [datetime]
Run Code Online (Sandbox Code Playgroud)
在游标中,insert语句周围有一个try/catch,因此它逐个处理作业,如果有问题,我确切地知道它失败了哪个作业,因为有一个更新语句说"完成" "如果没关系,"如果没有失败".
我在此表中放入的所有数据都足够短,以适应需求列(即产品名称少于200个字符,INT值为5位或更少).
我收到警告,而不是错误,但我无法理解为什么它在作为SQL作业运行时失败了合法记录,而不是当它作为独立SP运行时.
目标表上没有触发器,INT列上有一些默认的0约束(但我不认为这是问题.同一SP中的其他表没有此问题)
提前致谢
我有三张桌子.
表1.(预订)
CREATE TABLE [dbo].[Booking](
[Booking_Serno] [int] IDENTITY(1,1) NOT NULL,
[Dt] [datetime] NULL,
[start] [nvarchar](50) NULL,
[todate] [nvarchar](50) NULL,
[Service_Id] [int] NULL
) ON [PRIMARY]
INSERT [dbo].[Booking] ([Booking_Serno], [Dt], [start], [todate], [Service_Id]) VALUES (1, CAST(0x0000A6DA00000000 AS DateTime), N'9:30 AM', N'10:00 AM', 1)
GO
Run Code Online (Sandbox Code Playgroud)
表2.(服务)
CREATE TABLE [dbo].[Service](
[Service_Serno] [int] IDENTITY(1,1) NOT NULL,
[Service_Duration] [int] NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Service] ON
INSERT [dbo].[Service] ([Service_Serno], [Service_Duration]) VALUES (1, 30)
Run Code Online (Sandbox Code Playgroud)
表3(规则)
CREATE TABLE [dbo].[Rules](
[Rule_Serno] [int] IDENTITY(1,1) NOT NULL,
[Start_Dt] …Run Code Online (Sandbox Code Playgroud) 我正在使用带有动态创建列的数据透视表来创建一个按月计算操作的报表.在动态查询中是一个涉及三列的CROSS APPLY.这导致我的总数增加了三倍.我目前正在攻击一个解决方案,我将计数除以3得到正确的答案.任何人都可以帮我提出一个更优雅的解决方案来解决这个问题吗?
编辑:我正在使用SQL Server 2008R2
鉴于此数据集(它实际上是一个视图,但我觉得在SO中重新创建整个模式并不明智):
CREATE TABLE vw_ActionsReport
([CID] int, [MitigationActionID] int, [Approved] int, [Status] varchar(11), [ChangedDate] datetime, [EntryDate] varchar(7), [STATE_ABBR] varchar(2), [STATE_NAME] varchar(11), [CENSUS_NAM] varchar(12), [CIS_NAME] varchar(21), [COUNTY_NAM] varchar(9), [CO_FIPS] int, [REGION] int, [ST_FIPS] int);
INSERT INTO vw_ActionsReport
([CID], [MitigationActionID], [Approved], [Status], [ChangedDate], [EntryDate], [STATE_ABBR], [STATE_NAME], [CENSUS_NAM], [CIS_NAME], [COUNTY_NAM], [CO_FIPS], [REGION], [ST_FIPS])
VALUES
(090069, 5475, 1, 'Identified', '2012-11-27 16:21:27', '11_2012', 'CT', 'CONNECTICUT', 'OLD SAYBROOK', 'OLD SAYBROOK, TOWN OF', 'MIDDLESEX', 09007, 01, 09),
(090069, 5476, 1, 'In Progress', '2012-11-27 …Run Code Online (Sandbox Code Playgroud) 我有SQL Server.我有超过20000行使用SQL server.I有列Filed Name Amount.in Amount Filed Inserted negative和Positive Number.现在我想要Sort Amount字段负数和正数
示例如:
Entity ExpenseTypeCode ExpenseType Amount
11 043 Hotel 5
12 044 travel 23
13 045 drink 55
14 046 Dinner 23
15 047 airline 556
16 048 Hotel -5
Run Code Online (Sandbox Code Playgroud)
我怎么喜欢超过30000 LINES.在我的表中我有费用类型但负值和正值我想要排序我的表像负和正序相同值
Entity ExpenseTypeCode ExpenseType Amount
11 043 Hotel 5
16 048 Hotel -5 --> Want sort like this
12 044 travel 23
13 045 drink 55
14 046 Dinner 23
15 047 airline 556
Run Code Online (Sandbox Code Playgroud)
我怎样才能对表格进行排序?
假设我们有一个名为Employee的表,列名为'Name':
+---------+
| Name |
+---------+
| Jack |
+---------+
| Paul |
+---------+
| Jack |
+---------+
Run Code Online (Sandbox Code Playgroud)
要拥有不同的名称,我们可以运行此查询:
Select DISTINCT Name
from Employee
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来检索不同的值?