如何在EFCore3.0中使用存储过程?
我试过以下几种方法
var user = await _context.Query<User>().FromSql("EXECUTE dbo.spGeneral_Authenticate").FirstOrDefaultAsync();
var user = await _context.Query<User>().FromSqlRaw("EXECUTE dbo.spGeneral_Authenticate").FirstOrDefaultAsync();
var user = await _
我已经为数据库中的一个操作编写了这个存储过程,但是它提示有两个错误。我是新来的,所以如果有人能纠正这个错误,那就太好了。
CREATE PROCEDURE findVersions
@seg nvarchar(255),
@str nvarchar(255)
AS
DECLARE @UnsegQuery AS nvarchar(255)
SET @UnsegQuery = SELECT DISTINCT UnsegmQuery
FROM tbData
WHERE SegQuery =
我得到了错误:在关键字'AS‘附近有错误的语法。我试图从MSSQL数据库中选择一列,而不是选择该字段的第一个字符。下面是代码(在PHP中):
$sql = "SELECT RIGHT(Column, LEN(Column) - 1) FROM Table WHERE [Column] ='".$search."' AS Column2";
我有如下的存储过程逻辑。我得到了
关键字“set”附近的语法不正确。
由于错误,请建议我的解决方案。
Declare @VAL int
Declare @Region bigint
drop table Tempqq
Select * Into Tempqq From dbo.split(@SpokeFolderList, ',')
while (Select Count(*) From Tempqq) > 0
begin
Select Top 1 @VAL = Tempqq.val From Tempqq
;With MyC
我在用那份声明
insert into foo select bar from foobar
效果很好。
然后,有一天,我把它改成:
insert into foo(bar) select bar from foobar
现在它不起作用了。
第二句话有什么不对?
我想知道这些事情,这样我就可以决定以后是否要小心了。
编辑
现在这已经很清楚了。我想知道MSSQL和Oracle的语法是否不同。请帮帮忙
我试图在pgAdmin的查询工具中运行这个简单的WHILE循环:
DECLARE @counter INT = 1;
WHILE @counter <= 5
BEGIN
PRINT @counter;
SET @counter = @counter + 1;
END
期望的结果只是一个从1到5的列表,但是我的pgAdmin返回了这个错误:* error :语法错误在"@“行1或附近:声明@counter INT = 1;
我是一个非IT专业的本科生,所以我希望你在解释中考虑到这一点。谢谢!()
这段简单的代码导致sp无法编译,并出现各种错误:我要做的就是检查客户站点的这个表,如果它是空的,那么我们就不会显示该应用程序。
if (select count(*) from oen.dbd_c_modules) > 0 begin
insert into [OEN].[DBD_C_MODULES]([MODULE_ID], [DESCRIPTION], ACTIVE)
VALUES(11,'Medications',1)
end
go
错误:消息102,级别15,状态1,过程DBD_GET_MEDICINE,第24行'end‘附近的语法不正确。Msg
在将列添加到现有表时:
IF NOT EXISTS(SELECT *
FROM datab2.INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'f1'
AND table_schema = 'datab2'
AND column_name = 'c4')
THEN
ALTER TABLE f1
ADD c4 nvarchar(50)
END IF;
我收到一个错误:
每个表都有一个列RECNUM。它们是(十进制(28,0),而不是null)。这就是我要参加的地方。我想在CAUNIT中选择DESC列。它是(varchar(28,0),null)。当我运行我的查询时,我得到:
Msg 156,第15级,状态1,第1行,在关键字'DESC‘附近不正确的语法。以下是我的查询:
SELECT CDCLSVC.UNIT_ID,CAUNIT.DESC
FROM CDCLSVC
LEFT JOIN CAUNIT
ON CDCLSVC.RECNUM = CAUNIT.RECNUM
我在一个单独的文件中有一些php代码,并使用javascript调用它。但是php代码不起作用。相反,它只是将代码放在div中。就像完整的代码在div中一样。如何使这个php代码执行?
我的javascript函数如下所示:
function checklogin(){
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xml
我有一个名为" Database“的MSSQL数据库。现在,当我试图使用下面所示的查询重命名它时,
USE master;
GO
ALTER DATABASE Database
Modify Name = Database01
GO
它给了我以下错误信息:
Msg 102,15级,状态1,第1行,在“数据库”附近不正确的语法。
但是这个查询对于其他数据库来说很好。我做错什么了?
由于某些原因,我无法在SSMS中从另一个表中创建一个新表。
use master;
create table bop as
select *
from dbo.Data$
where [2016] is not null and
[Series Name] = 'Imports of goods and services (% of GDP)' or
[Series Name] = 'Exports of goods and services (% of GDP)'
order by [Country Name] asc;
它输出错
我试图在postgresql中执行类似于下面的MSSQL代码的操作,但是我遇到了错误。
MSSQL代码
IF (YEAR(GETDATE()) ='2020')
SELECT 1
ELSE SELECT 2
Postgres代码
CREATE PROCEDURE PROCNAME(
DATEVAR timestamp
)
AS $BODY$
DECLARE
BEGIN
if (Extract (YEAR FROM TIMESTAMP DATEVAR) ='2020') THEN
DO SOMETHING;
ELSE DO S
我搞不懂为什么上面写着“附近的不正确的同步”
case changeuserid
when charindex('toolbar',lower(changeuserid) > 0 then 'TOOLBAR'
when charindex('mflynn',lower(changeuserid) > 0 then 'MFLYNN'
else (select username from CLAIMSAUDIT_USERS where MC400ID_PHP=changeuserid)
en
我有一个表,其中可以插入视图名称,下面的触发器应该确保只有系统中真正存在的vew_names (这是触发器包含的所有代码):
CREATE TRIGGER check_if_view_exists ON DATABASE FOR [INSERT], [UPDATE]
AS
BEGIN
IF EXISTS(SELECT view_name from MySpecial_views EXCEPT SELECT name from sys.views)
RAISERROR ('You can only insert views in that table that r
使用MSSQL2005,我习惯于编写这样的语句:
delete
from myTable
where ID in (select ID from otherTable where deleted = 1)
当otherTable有一个复合主键时,我该如何做呢?
复合键有两列:
docnum float
version int
(我的google-fu建议使用CTE来做这件事,但我没有使用它们的经验。)
在我开始之前,我意识到我正在尝试的东西是奇怪的和黑客的。它只是用于隔离笔测试,特别是SQL注入。
我需要做的是编写一条SQL语句,它在MySQL数据库上执行时的行为与在SQL Server数据库上执行时不同。
编辑
我可以构建的查询的限制是我只能更改"WHERE id =“子句之后的内容。我不能影响查询的任何其他部分。具体地说,我需要能够将只由some_other_table服务器执行的“UNION SELECT * FROM SQL”附加到我的输入的末尾。
这显然会炸毁MySQL,因为它没有我要联合的表。
具体地说:
SELECT * FROM USERS
WHERE id = M
如果我尝试联合(或相交或除)一个公共表表达式,则在UNION附近会出现语法错误。如果我没有使用CTE,而是将查询直接放入到联合中,那么一切都按预期的方式工作。
我可以解决这个问题,但是对于一些更复杂的查询,使用CTE可以使事情更加可读性。我也不喜欢不知道为什么有些事情会失败。
例如,以下查询工作:
SELECT *
FROM
(
SELECT oid, route_group
FROM runs, gpspoints
WHERE gpspoints.oid = runs.start_point_oid
UNION
SELECT oid, route_group
FROM runs, gp
我正试图从empMaster表中提取记录,以便在'N‘附近获得第n个最高的Salary.But错误。
SELECT TOP 1 salary
FROM
(SELECT DISTINCT TOP n salary
FROM empMaster
ORDER BY salary DESC) AS temp
ORDER BY salary
错误信息是:
'n'.附近的不正确语法
我一直试图从一个具有阿拉伯列名的表中获取数据。我能够从其他表中将阿拉伯文本转换为utf-8,但无法从表中获取带有阿拉伯语列名的数据。
这是针对Linux、MySql 5、PHP5和Apache2的。我使用PHP库连接到SQL服务器。我试过用阿拉伯语查询,就像在select * from table_name",select رقم الطالب from table_name中一样
ini_set('mssql.charset', 'UTF-8');
header('Content-type:text/html');
echo '
我想写一份这样的声明:
SELECT
TBL_CS_LINKS.LINK_ID,
TBL_CS_LINKS.LINK_NAME,
TBL_CS_LINKS.LINK_URL,
( SELECT COUNT(*)
FROM TBL_CS_TEMP_CLICK
WHERE TBL_CS_TEMP_CLICK.LINK_ID = 1)
FROM TBL_CS_LINKS
join right TBL_CS_TEMP_CLICK
on TBL_CS_LINKS.LINK_ID = TBL_CS_TEMP_CLICK.L
我正在尝试创建一个存储过程,但是我得到了一个错误:
函数中包含的Select语句不能将数据返回给客户端。
Msg 156,15级,状态1,过程fnSc_Channels_GetChannelsUnreadPosts,第39行
关键字“SET”附近的语法不正确。
有人能帮帮我吗?
ALTER FUNCTION [dbo].[fnSc_Channels_GetChannelsUnreadPosts]
(
@FrontEndActorID INT
, @ChannelActivityFeedActorID INT
)
RETURNS INT
AS
BEGIN
DEC
有没有办法在查询中使用show语句的输出?我试图查询表的大小,以便在计算中使用它,但得到的错误是“编译语句时出错:失败: ParseException行1:16无法识别'(‘'show’'tblproperties‘in from source”)附近的输入“。
select * from ( show tblproperties yourTableName("rawDataSize") )
为什么我们不能将数据导入到hive中,如下所示,hive_test表有user、comments列。
insert into table hive_test (user, comments)
value ("hello", "this is a test query");
在Hive中抛出以下异常
失败: ParseException第1行:28在select子句中无法识别“(”用户“”)附近的输入
我不想像下面这样通过csv文件导入数据以进行测试。
load data local inpath '/home/hduser/test_data.