小编BWS*_*BWS的帖子

不允许保存更改.您所做的更改需要删除并重新创建以下表

当我尝试更改表的数据类型时,我从SQL Management Studion收到这条可怕的消息:"不允许保存更改.您所做的更改需要删除并重新创建以下表格".我已经尝试通过T-SQL进行修改并且它可以工作,但为什么我不能通过设计模式执行此操作?我正在使用SQL Server 2008 R2.

sql sql-server-2008

18
推荐指数
2
解决办法
5万
查看次数

SQL Server:在函数中使用 Exec 的替代方案

我正在尝试创建一个函数,我可以调用它来检查数据库中每个表的键中的下一个 ID。我知道如何做到这一点,但无法创建该函数,因为我收到此错误:

“在函数中无效使用副作用运算符‘INSERT EXEC’。”

看来我不能在函数中使用Exec。我可以通过哪些替代方案来获取此信息?

这是我的代码:

CREATE FUNCTION FCN_ProximoID()
RETURNS @TablaID Table (Tabla nvarchar(370), ID int)
AS
BEGIN
-- Fill the table variable with the rows for your result set
DECLARE @Row INT
DECLARE @Filas INT
DECLARE @MaxID INT
DECLARE @Query As varchar(max)
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128)



SET @Filas = (SELECT MAX(Fila) 
    FROM (
        SELECT ROW_NUMBER() OVER(ORDER BY A.TABLE_NAME) AS 'Fila', 
                          A.TABLE_NAME As Tabla, A.COLUMN_NAME As Columna, 
        A.ORDINAL_POSITION As Indice, B.DATA_TYPE As TipoDato
        FROM 
        INFORMATION_SCHEMA.KEY_COLUMN_USAGE A
        LEFT JOIN INFORMATION_SCHEMA.COLUMNS …
Run Code Online (Sandbox Code Playgroud)

sql

3
推荐指数
1
解决办法
2万
查看次数

当存在null时,SQL查询返回null而不是SUM

我有一个简单的表,例如:

create table #test(x int, y int)
insert into #test values(null, 1)
insert into #test values(1, 1)
insert into #test values(1, 2)
insert into #test values(2, 2)
insert into #test values(3, 2)
Run Code Online (Sandbox Code Playgroud)

我需要通过分组获得总和,但如果组具有空值,则获取null而不是sum.我可以用两个查询来做到这一点:

1) select y, case when AVG(x)<>SUM(x)/COUNT(*) then null else SUM(x) end from #test
group by y
2) select y, CASE WHEN EXISTS(select * from #test innerTest where innerTest.y=outerTest.y and x is null) then null else sum(x) end 
from #test outerTest group by y
Run Code Online (Sandbox Code Playgroud)

哪个查询性能更好?还有其他解决方案吗?

sql performance

2
推荐指数
1
解决办法
982
查看次数

此子查询最多可以返回一条记录.(错误3354)

您好我的查询得到此错误有助于我恢复它

SELECT CompanyId, CompanyName, RegistrationNumber,
  (select CompanyAddress from RPT_Company_Address where 
   RPT_Company_Address.CompanyId=Company.CompanyId) AS CompanyAddress, 
  MobileNumber, FaxNumber, CompanyEmail, CompanyWebsite, VatTinNumber
FROM Company;`
Run Code Online (Sandbox Code Playgroud)

sql ms-access

2
推荐指数
1
解决办法
1万
查看次数

使用带有SQL查询的视图来解决问题

我有以下查询:

Create View Temp2 as 
(SELECT CurrentLoan.memberID, bookID, due_date 
 FROM CurrentLoan, Member
 WHERE CurrentLoan.memberID = Member.memberID 
 AND Member.firstname ="John" 
 AND Member.lastname = "Smith");

SELECT Temp2.bookID, Book.title, Temp2.due_date 
FROM Temp2, Book 
WHERE Temp2.bookID = Book.bookID ;
Run Code Online (Sandbox Code Playgroud)

但是,我需要能够生成相同的结果,而无需在一个语句中使用任何视图和所有视图.有关如何设置此设置的任何建议吗?

sql

2
推荐指数
1
解决办法
54
查看次数

标签 统计

sql ×5

ms-access ×1

performance ×1

sql-server-2008 ×1