SQL数据库开发时的疑问总结

3230阅读 0评论2014-08-19 Ophelia_cu
分类:数据库开发技术

1、select 1是什么意思?
    ANS:select 1 from mytable;select anycol(目的表集合中的任意一行) from mytable;与select * from mytable 作用上来说是没有差别的,都是查看{{是否有记录}},一般是作条件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但从效率上来说,1>anycol>*
2、SQL server 存储过程中怎么将变量赋值
    --SQL赋值语句
    DECLARE @test1 INT
    SELECT @test1 = 111
    SET @test1 = 222

    --SQL函数赋值,假定count()是自定义函数
    DECLARE @test2 INT
    SELECT @test2 = COUNT(*) FROM sys.sysobjects

    --SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)
    IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test
    GO
    CREATE PROCEDURE sp_test(@test INT OUTPUT)
    AS
    BEGIN
    SELECT @test = 999
    END
    GO

    --执行
    DECLARE @test3 INT
    EXEC sp_test @test3 OUTPUT
    SELECT @test3

    DROP PROCEDURE sp_test
    GO
3、如何创建一个带有返回值的存储过程
create procedure proc_Login 
@UserName varchar(20),
@UserPwd varchar(20)
--@returnValue int output--该关键字表明为外部变量 
as
declare @returnValue int
begin
if exists(
    select 1--UserName
    from tb_User
    where UserName=@UserName and UserPwd=@UserPwd
)
begin
set @returnValue=1
return @returnValue
end
else
begin
set @returnValue=2
return @returnValue
end
end
go

上一篇:SQL优化点滴之SQL改写
下一篇:数据库编程总结