4
我想使用光標刪除數據庫(sql server 2008 r2)的所有同義詞。 environment-database name-'mydatabase',schema name-'dbo'.. 可以請你引導我,因爲我曾嘗試過但while語句結束,不能刪除同義詞。 什麼邏輯應該適用w.r.t光標?使用光標刪除所有同義詞
我想使用光標刪除數據庫(sql server 2008 r2)的所有同義詞。 environment-database name-'mydatabase',schema name-'dbo'.. 可以請你引導我,因爲我曾嘗試過但while語句結束,不能刪除同義詞。 什麼邏輯應該適用w.r.t光標?使用光標刪除所有同義詞
無需使用遊標。難道它集:
declare @n char(1)
set @n = char(10)
declare @stmt nvarchar(max)
select @stmt = isnull(@stmt + @n, '') +
'drop synonym [' + SCHEMA_NAME(schema_id) + '].[' + name + ']'
from sys.synonyms
exec sp_executesql @stmt
傑森的回答類似的一些改進
完全同意,這是不是你需要的東西光標。
DECLARE @SQL NVARCHAR(MAX) = N''
SELECT @SQL += N'DROP SYNONYM ' + QUOTENAME(SCHEMA_NAME([schema_id])) + N'.' + QUOTENAME(name) + N';' + Char(13) + Char(10)
FROM sys.synonyms
WHERE SCHEMA_NAME([schema_id]) = N'dbo'
EXEC sys.sp_executesql @SQL