我想知道这句话有什么不对。
INSERT INTO Table1(Myname,category )
SELECT TOP 1 thenames
FROM tNames
WHERE DateAdded > DATEADD(Day, -10, GETDATE()
ORDER BY NEWID(),@ccategory)
我想从表tname中选择一个随机值,并将其与我从SP获得的类别值放在表1中。我该怎么做?
编辑:,我在MS中工作。完整代码:
Create PROCEDURE [dbo].[Names_SP]
@CCategory nvarchar(50)
AS
BEGIN
INSERT INTO Table1(Myname,category )
SELECT TOP 1 thenames
FROM tNames
WHERE DateAdded > DATEADD(Day, -10, GETDATE()
ORDER BY NEWID(),@ccategory)
END
当我呼叫SP时,我发送@ccategory。因为表1有两个列(第一个是类别),所以我希望从tname表中获得第二个(myname)列值,作为随机( 10天内添加的名称)。
发布于 2015-03-03 00:04:47
您有两个列要插入(Myname,类别),但您的选择列表只包含1列!(名)
“@类别”呢?至少在您发布的代码中,这个变量从未被声明或分配.
也许你应该这样做:
DECLARE @category varchar(20)
SET @category = 'some cat.'
INSERT INTO Table1(Myname,category)
SELECT TOP 1 thenames,@category
FROM tNames
WHERE DateAdded > DATEADD(Day, -10, GETDATE())
ORDER BY NEWID()
发布于 2015-03-02 23:58:48
从Select语句中选择一列,插入语句中指定了两列
INSERT INTO Table1(Myname)
SELECT TOP 1 thenames
FROM tNames
WHERE DateAdded > DATEADD(Day, -10, GETDATE()
ORDER BY NEWID(),@ccategory)
发布于 2015-03-03 00:01:16
您必须选择在insert语句中写入的确切值。有些事情是这样的-
INSERT INTO Table1(Myname,category )
SELECT TOP 1 thenames, Category_value
FROM tNames
WHERE DateAdded > DATEADD(Day, -10, GETDATE())
ORDER BY NEWID(),@ccategory
https://stackoverflow.com/questions/28826686
复制相似问题