标签: sql

无效的对象名称 - 存储过程

我正在通过SSMS在SQL Server中创建存储过程.

我已经编写了下面的存储过程,但是当我单击执行它时会出现错误:

Msg 208,Level 16,State 6,Procedure NewQuestion,Line 11无效的对象名称'hgomez.NewQuestion'.

表是所有权是正确的.(hgomez.Questions)

USE [devworks_oscar]
GO
/****** Object:  StoredProcedure [hgomez].[NewQuestion]    Script Date: 10/23/2011 23:55:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [hgomez].[NewQuestion]
    (
    @QUESTIONNAME nvarchar(50),
    @QUESTION_ID int OUTPUT
    )

AS
    /* SET NOCOUNT ON */
    INSERT INTO [Questions] (QuestionText) VALUES (@QUESTIONNAME)
    SET @QUESTION_ID = SCOPE_IDENTITY();
    RETURN
Run Code Online (Sandbox Code Playgroud)

提前致谢

sql sql-server ssms stored-procedures

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

从两个表中选择最大值,最小值

我有两张桌子.不同之处在于存档是一个表而另一个存放当前记录.这些是记录公司销售额的表格.在这两个领域我们都有:id,名称,销售价格.我需要从两个表中选择给定名称的最高价和最低价.我试着用这个查询:

select name, max (price_of_sale), min (price_of_sale)
from wapzby
union
select name, max (price_of_sale), min (price_of_sale)
from wpzby
order by name
Run Code Online (Sandbox Code Playgroud)

但是这样的调查给了我两条记录 - 一张当前的表,一张表档案.我想立即从两个表中选择最小和最大价格的名称.我如何获得此查询?

sql database union select

11
推荐指数
3
解决办法
5万
查看次数

11
推荐指数
4
解决办法
3万
查看次数

SQL替换所有NULL

我有一个大表,里面有一些NULL.从0表而不是NULL中选择表的最简单方法是什么.

或者,如果没有简单的方法,我愿意用表中的0替换所有空值.

有很多列,我不想通过ISNULL(FieldName,0)AS FieldName之类的东西来遍历每一列.

sql sql-server sql-server-2005

11
推荐指数
2
解决办法
3万
查看次数

奇怪的Oracle错误:标识符太长ORA-00972

使用ORACLE 10g时遇到了这个问题.我在这里阅读了这个问题的答案(ora-00972标识符太长了oracle 10g)堆栈溢出但它们没有为我工作.也许我的情况有所不同.

现在我有这些表名:WIMAX_TRAFFIC_STATSWIMAX_RADIO_STATS.当我尝试通过ODBC连接将数据插入到它们时Erlang/OTP,我得到了错误:

{error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972: 
identifier is toolong SQLSTATE IS: HY000"}
所以,我搜索谷歌并找到答案说,也许我的表名太长了.所以我在下面做了这个并再次尝试:
SQL> ALTER TABLE WIMAX_RADIO_STATS RENAME TO WR;
Table altered.
SQL> ALTER TABLE WIMAX_TRAFFIC_STATS RENAME TO WT;
Table altered.
我仍然得到同样的错误.其他来源sya,它可能是我在我的一些专栏中写的数据.我的表定义如下:


SQL> DESCRIBE WT;
 Name                                      Null?    Type
 ----------------------------------------- -------- -----------------
 SDATE                                              DATE
 ELEMENT_TYPE                                       VARCHAR2(50)
 MANAGED_ELEMENT                                    VARCHAR2(50)
 USER_LABEL                                         VARCHAR2(200)
 JOB_ID                                             VARCHAR2(50)
 MEAS_TYPE                                          VARCHAR2(50)
 MEAS_VALUE                                         VARCHAR2(50)

我在那里写的数据值都不比列长度定义长.我真的好奇.我试图在表中编写长度小于10个字符但仍然出现此错误的字符串.请帮助一些身体!

EDIT

SAMPLE查询请求如下:

INSERT INTO WT(element_type,managed_element,user_label,job_id,meas_type,
meas_value) VALUES("BreezeMAX MBS",
"SubNetwork=ASN,MeContext=,ManagedElement=MBS.172.17.9.9",
"BMAX-Shoal2[MTN-Egate]",
"99297","rbMngmntPortPacketsDiscardedOnRx","0"); …

sql oracle erlang odbc

11
推荐指数
1
解决办法
2万
查看次数

SQL Server:如何为整个存储过程设置默认隔离级别?

如果BEGIN我在SET TRANSACTION ISOLATION LEVEL ...声明之后,对于整个存储过程的范围,给定的事务级别是否有效,无论我是否使用BEGIN TRANSACTION?也就是说,如果我有简单的SELECT语句,按定义原子/事务处理,它们的默认事务级别是否会设置为给定的语句?

BEGIN
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
 -- will a transaction level for a atomic transaction created by SQL Server for this statement be READ COMMITTED 
SELECT * FROM T
END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

11
推荐指数
1
解决办法
9057
查看次数

有没有办法让列的可空性取决于另一列的可空性?

我在数据库表中有两列(以及其他列):ExitDate和ExitReason.我们的业务逻辑要求在指定ExitDate时指定ExitReason.ExitDate列需要允许空值,因为在插入时并不总是知道该值.有没有办法让ExitReason列仅在ExitDate值为null时才允许空值?我可以通过将这两列分成单独的"退出日期"表并使它们都不可为空来完成效果,但如果我不必这样做会很好.

想法?谢谢!

sql ms-access nullable

11
推荐指数
1
解决办法
861
查看次数

codeigniter如何消毒输入?

我正在构建一个Codeigniter应用程序,我正在努力防止SQL注入.我正在使用Active Record方法构建我的所有查询.我知道Active Record会自动清理输入,但我想知道到底在多大程度上?它只是逃避所有引用,还是做得更多?如何防止混淆的SQL注入或其他更高级的类型?

基本上,我正在寻找CI如何清理数据的深入解释.谁知道?

php sql sql-injection codeigniter

11
推荐指数
1
解决办法
6877
查看次数

MYSQL - NOT vs var = false

在过去的几天里,我发现了一些奇怪的优化我的查询.我有一个简单的查询,它具有以下特点:

   SELECT id,name,amount FROM reservations WHERE NOT canceled ORDER BY name ASC
Run Code Online (Sandbox Code Playgroud)

我注意到mysql没有使用任何索引,所以我开始做一些实验.无意中我将"NOT cancel"替换为"cancelled = false",然后,Mysql开始使用"cancelled"作为索引.之后我尝试使用相反的方法:

   SELECT ... FROM reservations WHERE canceled ORDER BY ...
Run Code Online (Sandbox Code Playgroud)

结果相同!当我将其更改为"cancelled = true"时,索引再次起作用.

我的问题是:怎么样?!是不是使用"NOT"的"优雅"方式?无论如何,我没想到它会有任何不同.

我使用InnoDB作为引擎,但我使用MyISAM获得相同的结果.有人能澄清一切吗?谢谢.

编辑:表结构

CREATE TABLE `reservations` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `trip_code` varchar(10) DEFAULT NULL,
  `departure_date` date DEFAULT NULL,
  `amount` float DEFAULT NULL,
  `name` varchar(45) DEFAULT NULL,
  `canceled` tinyint(1) NOT NULL DEFAULT '0',
  `created_date` date NOT NULL,
  `creator_user` int(11) NOT NULL DEFAULT '1',
  `last_update_user` int(11) NOT NULL DEFAULT '1', …
Run Code Online (Sandbox Code Playgroud)

mysql sql

11
推荐指数
1
解决办法
314
查看次数

跨数据库查询,加入优缺点

我处于混乱状态,在同一个SQL Server实例中使用跨数据库查询的优点和缺点是什么?

我能想到的一件事是性能问题(查询会很慢)如果是这种情况的解决方案是什么?

请注意解决方案的一些优点和缺点,以便我可以自信地处理这两个数据库.

我有两个数据库db1 Companies/CRM和db2 Products/E-commerce

sql sql-server sql-server-2008

11
推荐指数
2
解决办法
1万
查看次数