我不能用TSQL写点东西吗
declare @set1 int
declare @set2 int
set @set1=1
set @set2=2
select @set1 < @set2
结果是真的吗?
我知道我可以用
case when @set<@set then 'true'
但是我不能用我上面写的方式来做吗?
如何捕获以下SQL语句的输出,以便查询结果集:
RESTORE FILELISTONLY FROM
DISK = N''D:\Restores\MyBackup.BAK'' WITH NOUNLOAD,
FILE = 1
我是否需要创建一个临时表,然后执行以下操作?:
INSERT #tmp EXEC ('RESTORE FILELISTONLY FROM
DISK = N''D:\Restores\KevsProfilerTraces.BAK'' WITH NOUNLOAD, FIL
我有一个SQL触发器,它调用存储过程。就像这样
Alter TRIGGER [dbo].[MyTrigger]
ON [dbo].[MyTable]
AFTER INSERT, UPDATE
AS
BEGIN
-- Some t-sql
-- Call Stored Procedure
exec MyProc
END
现在的问题是,过程MyProc返回一个结果集,这是系统其他部分所需要的,但我不希望在通过该触发器执行此过程时返回该结果集,因为每当我在MyTable中更新/插入时返回结果集--该表是创建触发器的表,而且每次在upd
我有一个存储过程,它有两个参数: week、year。当我执行存储的proc时,它要求输入星期和年份,在给出这些值之后,它会显示某些结果。现在,我想要做的是,我想要从2014年的第一周到当前一周的结果。
This is my code,
USE [MyDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date:
我有GetProductDetailedDescriptions存储过程。我想创建一个函数,将GetProductDetailedDescriptions的结果集返回为sql中的xml string。我试过了,
EXEC [GetProductDetailedDescriptions] @pid FOR XML AUTO, ELEMENTS
但是我得到了语法错误。
我有两张表:
COUNTRY,包含两列COUNTRY_ID和PERSON_REGION_ID。
PERSON,多列,其中PERSON_REGION_ID列与COUNTRY.PERSON_REGION_ID相同,PERSON_ID为PERSON的ID列。
查询如下:
SELECT *
from COUNTRY
where PERSON_REGION_ID IN (
SELECT PERSON_REGION_ID
FROM PERSON
WHERE PERSON_ID IN (111, 888)))
AND COUNTRY_ID = 44;
如果
我尝试在查询语句中使用多值参数,而不是使用筛选器,但是在使用in命令时,它没有使用我给出的参数。我已经使用JOIN函数来连接值,并尝试在值周围添加引号或不添加引号,这似乎对查询都没有任何影响。报告不会显示具有给定to_date和通过参数在in语句中提供的值的任何结果。有人能帮帮忙吗? 查询 SELECT a.ha_code FROM a WHERE a.from_date <= ? AND a.to_date > ? AND a.ha_code != 'CT' OR a.to_date = ? AND a.ha_code IN (?) 参数 =join(Param
考虑一下:
CREATE PROCEDURE LowerCityDiscounts @city VARCHAR(45), @decrease DECIMAL(10,2) AS
BEGIN
BEGIN TRANSACTION;
UPDATE Customers SET discnt = discnt - @decrease
WHERE Customers.city = @city;
UPDATE Customers SET discnt = 0
WHERE Customers.city = @city AND discnt < 0
COMM
在ADO.NET中,我们有用于启动事务、读取查询结果等的方法。我的问题是,如果我只将这些语句包含到命令文本中,然后将它们包含到ExecuteNonQuery中,那么BEGIN TRANSACTION,特别是TRY-CATCH这样的then语句是否有效?
mySqlCommand.CommandText =
@"BEGIN TRY
SELECT TOP 1 [id] FROM myTable;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber;
END CATCH;"
var result = m
我在SQL Server中有以下查询,我正尝试将其转换为Oracle 11g。
IF '[Param.1]' = 'S' OR '[Param.1]' = 'T' THEN
select * from ULQUEUE
END IF
但是,当我在Oracle中编写相同的查询时,它会给出错误,说明无效的SQL语句。那么,如何在Oracle的Select语句中合并IF-ELSE呢?
select Name from Passagerare
left join EB
on Passagerare.Personnr = EB.Personnr
left join MM
on Passagerare.Personnr = MM.Personnr
where Passagerare.Personnr = EB.Personnr or Passagerare.Personnr = MM.Personnr
📷
我试着向大家展示所有passagerare的名字,他们没有加入EB或MM,现在我用is not null解决了这个问题,但是有人告诉我还有其他方法来解决这个问题,我该怎
我想找出每学期选修课程的学生人数。下面是给出正确答案的查询
select semester,subject,count(stdId)
from tblSubjectMaster
group by subject, semester
但是我也尝试过其他的查询,它给出了不同的结果。查询是
select semester,subject,count(stdId)
from tblSubjectMaster
group by subject and semester
有什么区别,在小组,和在一起?
在MS SQL Server Management Studio 2005中,运行以下代码
EXEC('SELECT * FROM employees WHERE employeeID = ' + CAST(3 AS VARCHAR))
给出此错误:Incorrect syntax near 'CAST'
但是,如果我这样做,它就会工作:
DECLARE @temp VARCHAR(4000)
SET @temp = 'SELECT * FROM employees WHERE employeeID = ' + CAST(3 AS VARCHAR
我是PostgreSql的新手,曾经使用过SQL Server。从Sql Server的角度来看,我很难理解一个很简单的场景。我需要将变量的值作为查询结果(例如数据集)。 如果是Sql Server,我会有这样的东西: Declare @cnt int
Delete from MyTable
set @cnt = @@ROWCOUNT
select @cnt as FinalResult 预期的结果是使用变量的值(例如@cnt作为我的结果集)。我在PostgreSql中尝试了同样的方法,使用了以下代码: DO $$
DECLARE
affected_rows int
我的数据库项目Visual Studio 2013中有一些存储过程文件。当我有一个使用CREATE procedure语法的存储过程,VS用红色下划线CREATE并给出这个错误:
The model already has an element that has the same name
当我使用ALTER PROCEDURE时,它给ALTER加了下划线,并给出了这个错误:
This statement is not recognized in this context
我已经使用右键单击/连接设置了到本地DB服务器和存储过程所在的正确DB的连接。
DB项目是从头开始创建的,并且没有升级。在
我已经调查过这件事了,我只是很难接受这是不可能的。
我编写查询供其他人使用,通常在顶部包含一些声明的变量,这样用户就可以在查询的顶部“过滤”他们的搜索,而不用去处理其他的查询。
有时,用户可能不希望指定特定变量的值,因为他们希望返回所有类型。我知道这不是SQL的目的,而且还有报告工具。对如何做到这一点有什么建议吗?
DECLARE @foo int, @bar bit
SET @foo = *
SET @bar = *
SELECT *
FROM table
WHERE foo = @foo
AND bar = @bar