如何通過單個查詢獲取所有用戶定義數據類型的腳本。如何獲取所有用戶定義數據類型的腳本
3
A
回答
5
試試這個:
SET NOCOUNT ON
SELECT 'USE ' + QUOTENAME(DB_NAME(), '[') + '
GO';
SELECT '
IF EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N''' + st.[name] + ''' AND ss.name = N''' + ss.[name] + ''')
DROP TYPE ' + QUOTENAME(ss.name, '[') + '.' + QUOTENAME(st.name, '[') + '
GO
CREATE TYPE ' + QUOTENAME(ss.name, '[') + '.' + QUOTENAME(st.name, '[') + ' FROM ' +
QUOTENAME(bs.[name], '[') +
CASE bs.[name]
WHEN 'char' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
WHEN 'nchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length/2) + ')' END)
WHEN 'varchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
WHEN 'nvarchar' THEN (CASE ISNULL(st.max_length, 0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE '(' + convert(varchar(10), st.max_length/2) + ')' END)
WHEN 'numeric' THEN (CASE ISNULL(st.[precision], 0) WHEN 0 THEN '' ELSE '(' + convert(varchar(10), st.[precision]) + ', ' + convert(varchar(10), st.[scale]) + ')' END)
WHEN 'decimal' THEN (CASE ISNULL(st.[precision], 0) WHEN 0 THEN '' ELSE '(' + convert(varchar(10), st.[precision]) + ', ' + convert(varchar(10), st.[scale]) + ')' END)
WHEN 'varbinary' THEN (CASE st.max_length WHEN -1 THEN '(max)' ELSE '(' + convert(varchar(10), st.max_length) + ')' END)
ELSE ''
END +
'
GO
'
FROM sys.types st
INNER JOIN sys.schemas ss ON st.[schema_id] = ss.[schema_id]
INNER JOIN sys.types bs ON bs.[user_type_id] = st.[system_type_id]
WHERE st.[is_user_defined] = 1 -- exclude system types
ORDER BY st.[name], ss.[name]
免責聲明:我不是這個劇本的作者。只是我把它放在我的私人圖書館裏。不幸的是作者的名字不在其中。
+1
這正是我想要的!非常感謝分享,感謝作者:) – NFRiaCowboy
0
除了什麼vmvadivel說(這就像一個魅力!)這是一個腳本來爲你做,只是轉儲碼在那裏,並命名SQL文件getTypesSelect.sql,這將工作:
@echo off
cls
set /p SName=Server Name :
set /p UName=User Name :
set /p Pwd=Password :
set /p DbName=Database Name :
set /p choice=ARE YOU SURE TO EXECUTE SCRIPTS in %DbName% (y/n) ?
if '%choice%'=='y' goto begin
goto end
:begin
if exist addUserDefinedTypes.sql del addUserDefinedTypes.sql
@echo on
SQLCMD -S %SName% -d %DbName% -U %UName% -i "getTypesSelect.sql" -o addUserDefinedTypes.txt -P %Pwd%
rename addUserDefinedTypes.txt addUserDefinedTypes.sql
@notepad addUserDefinedTypes.sql
:end
取下sql查詢以下行上面,如果你打算到不同的數據庫(你可能會這)
SELECT 'USE ' + QUOTENAME(DB_NAME(), '[') + '
GO';
相關問題
- 1. 如何在Sybase中獲取所有用戶定義的數據類型?
- 2. SQL,獲取所有自定義數據類型的列表
- 3. 如何獲取用戶控件數據類型所在的TabPage
- 4. 如何獲取有關用戶定義類型的信息?
- 5. jQuery:獲取沒有定義類型的所有文本輸入
- 6. 選擇所有用戶定義的數據類型/結構
- 7. 如何獲取所有類別的所有帖子自定義帖子類型?
- 8. T-SQL:如何通過ID獲取用戶定義的列的數據類型?
- 9. 如何獲取Sybase ASE上的用戶定義數據類型列表?
- 10. 用戶自定義數據類型VS用戶自定義類型VS用戶定義的表類型
- 11. 如何獲取模塊定義的所有子類(特定類)?
- 12. 如何根據類名獲取用戶定義的對象類型?
- 13. Python用戶定義的數據類型
- 14. 獲取所有用戶定義的類文件中的
- 15. 如何爲用戶定義類型選擇所有列
- 16. 如何獲取Hive數據庫中的所有表定義?
- 17. 如何在c中創建用戶定義的數據類型,如下所示?
- 18. 獲取與自定義後類型相關聯的所有用戶在WordPress
- 19. 如何使用用戶定義的數據類型對定義的數據類型進行操作?
- 20. 如何從數據庫中獲取所有用戶數據?
- 21. 如何獲取本地用戶所屬的所有本地組
- 22. 用戶定義的數據類型,使用另一個用戶定義的數據類型作爲參數
- 23. Cassandra - 用戶自定義數據類型
- 24. 用戶定義UML數據類型2010
- 25. drupal引導腳本:如何獲取x類型的所有節點的列表?
- 26. 獲取有關用戶定義對象類型中的attrubute類型的信息
- 27. 如何獲取爲特定模型類定義的所有factory_girl工廠?
- 28. 如何獲取用戶輸入的值的數據類型
- 29. 如何用可尋址的成員定義用戶定義的數據類型?
- 30. 從hybridauth獲取所有用戶數據
你有沒有嘗試過的東西上運行?在問這個問題之前,至少使用google搜索並嘗試一些查詢? – Yaroslav