-------------创建名为GetUserAccount的存储过程---------------- createProcedureGetUserAccount as select * fromUserAccount go -------------执行上面的存储过程---------------- execGetUserAccount
结果:相当于运行 select * from UserAccount 这行代码,结果为整个表的数据。
createProcedureinUserAccount as insertintoUserAccount(UserName,[PassWord],RegisterTime,RegisterIP)values(9,9,'2013-01-02',9) go -------------执行上面的存储过程---------------- execinUserAccount
结果:相当于运行 insert into UserAccount (UserName,[PassWord],RegisterTime,RegisterIP) values(9,9,’2013-01-02’,9) 这行代码。
createProcedureinUserAccountRe as insertintoUserAccount(UserName,[PassWord],RegisterTime,RegisterIP)values(10,10,'2013-01-02',10) return @@rowcount go -------------执行上面的存储过程---------------- execinUserAccountRe
解释:这里的@@rowcount为执行存储过程影响的行数,执行的结果是不仅插入了一条数据,还返回了一个值即 return value =1 ,这个可以在程序中获取,稍后在c#调用存储过程中会有说到。
createProcedure GetUserAccountRe @UserName nchar(20), @UserID intoutput as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 go
createProcedure GetUserAccountRe1 @UserName nchar(20), @UserID intoutput as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 return @@rowcount go
createProcedure GetUserAccountRe2 @UserName nchar(20), @UserID intoutput as if(@UserName>5) select @UserID=COUNT(*) from UserAccount where UserID>25 else set @UserID=1000 select * from UserAccount return @@rowcount go
-------------执行上面的存储过程----------------
exec GetUserAccountRe2 '7',null
结果:返回执行 select * from UserAccount 这句代码的结果集,同时@userID为COOUT(*)即 =1,Retun Value=9。
public partial class ProcedureTest : System.Web.UI.Page { public static string conn = ConfigurationManager.ConnectionStrings["StuRelationDBConnectionString"].ConnectionString; public SqlConnection con = new SqlConnection(conn); protected void Page_Load(object sender, EventArgs e) { runGetUserAccountRe3(); }
//只返回单一记录集的存储过程GetUserAccount public void runGetUserAccount() { SqlDataAdapter dp = new SqlDataAdapter(common("GetUserAccount")); DataSet ds = new DataSet(); // 填充dataset dp.Fill(ds); rpt.DataSource = ds; rpt.DataBind();
SELECT @@CONNECTIONS --返回自上次SQL启动以来连接或试图连接的次数。 SELECTGETDATE() --当前时间 SELECT @@CPU_BUSY/100--返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒
USE tempdb SELECT @@DBTS as w --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。 select @@IDENTITYas w --返回最后插入的标识值 SELECT @@IDLE as w --返回SQL自上次启动后闲置的时间,单位为毫秒 SELECT @@IO_BUSY AS w --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒 SELECT @@LANGID AS w --返回当前所使用语言的本地语言标识符(ID)。 SELECT @@LANGUAGEAS w --返回当前使用的语言名 SELECT @@LOCK_TIMEOUT as w --当前会话的当前锁超时设置,单位为毫秒。 SELECT @@MAX_CONNECTIONS as w --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值 EXEC sp_configure --显示当前服务器的全局配置设置 SELECT @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。 select @@OPTIONS as w --返回当前 SET 选项的信息。 SELECT @@PACK_RECEIVED as w --返回SQL自启动后从网络上读取的输入数据包数目。 SELECT @@PACK_SENT as w --返回SQ自上次启动后写到网络上的输出数据包数目。 SELECT @@PACKET_ERRORS as w --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。 SELECT @@SERVERNAME as w --返回运行SQL服务器名称。 SELECT @@SERVICENAME as w --返回SQL正在其下运行的注册表键名 SELECT @@TIMETICKS as w --返回SQL服务器一刻度的微秒数 SELECT @@TOTAL_ERRORS AS w --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。 SELECT @@TOTAL_READ as w --返回 SQL服务器自启动后读取磁盘的次数。 SELECT @@TOTAL_WRITE as w --返回SQL服务器自启动后写入磁盘的次数。 SELECT @@TRANCOUNT as w --返回当前连接的活动事务数。 SELECT @@VERSIONas w --返回SQL服务器安装的日期、版本和处理器类型。