Sql server 需要使用存储过程中的参数执行SQL插入的帮助吗
我不确定语法是否正确..但我想要的是传递查询2个参数:Article和UserID..插入这两个参数,然后插入页码..基本上得到Article ID的计数并除以5。。。我找不到一个别扭的号码。我还希望这个数字是一个整数。。(所以不是1/5而是0..9/5,而是1) 以上更新Sql server 需要使用存储过程中的参数执行SQL插入的帮助吗,sql-server,stored-procedures,insert,Sql Server,Stored Procedures,Insert,我不确定语法是否正确..但我想要的是传递查询2个参数:Article和UserID..插入这两个参数,然后插入页码..基本上得到Article ID的计数并除以5。。。我找不到一个别扭的号码。我还希望这个数字是一个整数。。(所以不是1/5而是0..9/5,而是1) 以上更新 它告诉我声明UsersID..syntax error我不了解页码的来源。但至少,insert语句的结构不正确,应该如下所示: ALTER PROCEDURE dbo.Articles_InsertArticle
它告诉我声明UsersID..syntax error我不了解页码的来源。但至少,insert语句的结构不正确,应该如下所示:
ALTER PROCEDURE dbo.Articles_InsertArticle
@Article nvarchar(MAX),
@UsersID uniqueidentifier
AS
INSERT INTO Articles
(UsersID,Article,PageNumber)
SELECT @UsersID,
@Article,
floor(COUNT(ArticleID)/5)
FROM Articles
我猜了一下你要找的页码,但是我们可能需要更多的信息。上面说我必须声明scaler用户ID…但是声明了..hmn请注意,这将获得插入新记录之前的文章数--如果这是有意的还是无意的话。如果您需要post计数,则需要在
计数中添加一个。为什么它会告诉我UsersID未声明?仍然会告诉我UsersID需要声明。我在变量之间缺少逗号。立即更正它Floor(count(*)/5)将确保PageNumber为int(尽管取决于平台,它可能会返回一个int)这是一个页码..您需要的更多信息。这是一个字段..我认为在您的计数下..我很可能会得到一个异常…因为几乎所有我能想到的平台都会出现双精度计数()返回一个整数,5是一个整数,整数除以整数就是一个整数。至于页码,它应该是整个表中所有页码的计数吗?只是那些符合特定条件的页码的计数?哈哈…德里克..为什么要使用where子句..我想你把我弄丢了一点我不知道你为什么选择嘲笑一个试图elp您解决了一个描述不好的问题当您从文章中计算articleid时,您将只获得文章中所有记录的计数,而不是任何特定文章的计数。我无法想象这是您想要的。您可能应该删除ASP.NET标记,因为这似乎与ASP.NET无关。
insert into Articles(UsersID, Article, PageNumber)
select @UsersID, @Article, count(*) / 5
FROM Articles
WHERE Article = @Article
INSERT INTO Articles (UsersID,Article,PageNumber)
VALUES (@UsersID, @Article, ROUND(SELECT COUNT(ArticleID)/5 FROM Articles),0)