|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
WindowsAzureSQLDatabase并不支持数据压缩和表分区之类的功能,而且SQLDatabase支持的Transact-SQL语言只是完整版的一部分。另外,因为解决方案提供商不能控制物理资源,所以他们不能将数据文件和索引分配给特定的硬件。在我们的项目中常常必要用到分面功效,而我之前呢用的办法如今看起来都是那麽的愚笨,事先是如许做的,每当要举行数据分页时就专们针对谁人表做分页,人人别笑,之前的确好笨。呵呵,固然事先也有一个设法就是但愿可以传进一张表出来举行操纵,但那样的话编译是通不外的,由于FROM前面操纵的是表变量,而不克不及是我们自界说的变量,以是事先没有深究查,如今为事先不深切进修而BS一下。
静态SQL必要筹办以下内容:
1、@SQL拼接后的SQL语句,能够是你恣意必要的SQL语句如:SET@SQL=SELECT*FROMtableWHEREID=@id注重此处的@SQL必需且只能是NTEXT、NVARCHAR、NCHAR范例,假如是别的范例的话别的中央明显没有成绩却会报"历程必要范例为ntext/nchar/nvarchar的参数"这个毛病。同时,假如这里必要传进表称号的话则应如许写:SET@SQL=SELECT*FROM+@table+WHEREID=@id,由于下面传进的值是文本范例故会报错。
2、@parameters所拼接的SQL语句内里的参数,按下面的话这里应当是:SET@parameters=@idINT同时这个参数的范例也必需且只能是NTEXT、NVARCHAR、NCHAR范例
3、挪用:sp_executesqlparam1(,param2)个中param1一样平常我们作为是@SQL,前面的参数则是我们在@sql中的参数了,但这里要注重的是传参的时分必需是对应的:
复制代码代码以下:
DECLARE@InputIdINT;
SET@InputId=1;
param2为:@id=@InputId;
以下是写的一个复杂的通用分页,有必要能够自行修正:
复制代码代码以下:
ALTERPROCEDUREsp_pager
(
@TableNamenvarchar(50),--表名
@ReturnFieldsnvarchar(200)=*,--必要前往的列
@PageSizeint=50,--每页纪录数
@PageIndexint=1--以后页码
)
AS
DECLARE@SQLNVARCHAR(1000)
DECLARE@paramtersNVARCHAR(200)
BEGIN
SETNOCOUNTON
SET@SQL=SELECT+@ReturnFields+FROM+@TableName+WHEREID>(SELECTTOP1IDFROM(SELECTTOP+CAST(@PageSize*@PageIndexASVARCHAR)+IDFROM+@TableName+ORDERBYID)ASAORDERBYIDDESC)
PRINT@SQL
EXECUTEsp_executesql@SQL,@paramters,@columns=@ReturnFields
END
对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。 |
|